Home > Backend Development > PHP Tutorial > thinkPhp在nginx下伪静态不能使用了

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

WBOY
Release: 2016-06-23 13:26:28
Original
1707 people have browsed it

.htaccess里面

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

能访问首页,但是内页的页面都没办法访问了,用
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;       }   }
Copy after login
自己对比改一下

照着弄了一下也不行呢

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;        }
Copy after login

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

        location /youdomain/ {            if (!-e $request_filename){                rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=$1  last;            }        }
Copy after login

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template