> 백엔드 개발 > PHP 튜토리얼 > thinkPhp在nginx下伪静态不能使用了

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

WBOY
풀어 주다: 2016-06-23 13:26:28
원래의
1711명이 탐색했습니다.

.htaccess里面

<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] </IfModule>
로그인 후 복사

能访问首页,但是内页的页面都没办法访问了,用
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;       }   }
로그인 후 복사
自己对比改一下

照着弄了一下也不行呢

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;        }
로그인 후 복사

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

        location /youdomain/ {            if (!-e $request_filename){                rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=$1  last;            }        }
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿