Heim > Backend-Entwicklung > PHP-Tutorial > thinkPhp在nginx下伪静态不能使用了

thinkPhp在nginx下伪静态不能使用了

WBOY
Freigeben: 2016-06-23 13:26:28
Original
1708 Leute haben es durchsucht

.htaccess里面

<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] </IfModule>
Nach dem Login kopieren

能访问首页,但是内页的页面都没办法访问了,用
index.php?a=guest是能访问的
/guest就不行了,求帮忙,'URL_MODEL' => 2


回复讨论(解决方案)

因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢

因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢


那应该怎么配置呢?网上我看了好多方法都只说配nginx.conf,照着网站那种改过也不行

server {       listen  80;       server_name     www.phpno.com;       root /home/www/www_phpno_com/admin_wwwroot;       access_log off;       error_page 404  /404.html;       location /404.html {               root /home/www/www_phpno_com/admin_wwwroot;       }       location /{               index index.html index.htm index.php;               if (-e $request_filename) {                       break;               }               if (!-e $request_filename) {                       rewrite ^/(.*)$ /index.php/$1 last;                       break;               }       }        location ~ .+\.php($|/) {           root           /home/www/www_phpno_com/admin_wwwroot;           fastcgi_index index.php;           fastcgi_split_path_info ^(.+\.php)(.*)$;           fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;           fastcgi_param   PATH_INFO               $fastcgi_path_info;           fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;           fastcgi_pass   127.0.0.1:9000;       #    fastcgi_index  index.php;       #    fastcgi_param  SCRIPT_FILENAME  /home/www/www_phpno_com/admin_wwwroot/$fastcgi_script_name;       #    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;           include        fastcgi_params;       }   }
Nach dem Login kopieren
自己对比改一下

照着弄了一下也不行呢

location ~ \.php$ {	    fastcgi_split_path_info	^(.+\.php)(.*)$;	    include		fastcgi_params;	    fastcgi_param	SCRIPT_FILENAME $document_root$fastcgi_script_name;	    fastcgi_param	SERVER_NAME $http_host;	    fastcgi_param	PATH_INFO $fastcgi_path_info;	    fastcgi_param	PATH_TRANSLATED $document_root$fastcgi_path_info;	    fastcgi_pass	unix:/var/run/php-fpm/php-fpm.sock;	    fastcgi_param	SCRIPT_NAME $fastcgi_script_name;	    root		/data/php/www;        }
Nach dem Login kopieren

解决了,如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。

        location /youdomain/ {            if (!-e $request_filename){                rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=$1  last;            }        }
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage