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

奔波在生活路上 2015-09-15 05:02:37
.htaccess里面

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

能访问首页,但是内页的页面都没办法访问了,用
index.php?a=guest是能访问的
/guest就不行了,求帮忙,'URL_MODEL' => 2
...全文
286 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
照着弄了一下也不行呢

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;
            }
        }
xuzuning 2015-09-15
  • 打赏
  • 举报
回复
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;
       }
   }
自己对比改一下
  • 打赏
  • 举报
回复
引用 1 楼 php_Soul 的回复:
因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢
那应该怎么配置呢?网上我看了好多方法都只说配nginx.conf,照着网站那种改过也不行
Suckor 2015-09-15
  • 打赏
  • 举报
回复
因为nginx和apache的伪静态的写法不一样呢。 nginx是不支持.hta文件的呢

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧