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
...全文
197 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
照着弄了一下也不行呢

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文件的呢
  • 打赏
  • 举报
回复
相关推荐
发帖
基础编程
加入

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2015-09-15 05:02
社区公告
暂无公告