thinkphp的nginx rewrite问题

发布于 2021-11-27 05:29:25 字数 2623 浏览 801 评论 2

我的配置如下,根本没有rewrite

 server
       {
           listen 80;
           server_name domain;
           index index.html index.htm index.php default.html default.htm default.php;
           root  /home/wwwroot/blog;
           #error_page   404   /404.html;
           location / {
               if (!-e $request_filename){
                  rewrite ^(.*)$ /index.php/$1 last;
                  break;
              }
          }
          location ~ .php/?.*$
          {
             # comment try_files $uri =404; to enable pathinfo
               try_files $uri =404;
               fastcgi_pass  unix:/tmp/php-cgi.sock;
               fastcgi_index index.php;
               include fastcgi.conf;
               #include pathinfo.conf;
           }
  
           location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
          {
              expires      30d;
          }
  
          location ~ .*.(js|css)?$
          {
              expires      12h;
          }
  
          access_log  /home/wwwlogs/domain.log  access;
}  
我访问http://domain/article/extjs/的时候,404,我看了一下access.log

里面是这样的

1.***.***.*** - - [03/Dec/2015:17:08:31 +0800] "GET /article/extjs/ HTTP/1.1" 404 564 "http://114.**.**.**/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36   

thinkphp的url model 是2,也就是REWRITE模式
说明根本没有rewrite啊,这个问题出在哪里呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬花如无物 2021-11-29 23:39:47

好的,谢谢你! 我说一下 我刚自己找到了解决方案 rewrite ^(.*)$ /index.php/$1 last;,这里写成 rewrite ^(.*)$ /index.php?s=$1 last 这样也可以。

猫烠⑼条掵仅有一顆心 2021-11-29 17:19:25

location / {
    root /home/wwwroot/blog;
    index index.php index.html index.htm;

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php/$1;
    }
}

location ~ .php/?.*$ {
   root            /home/wwwroot/blog;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
     
   include     fastcgi.conf;

   set $path_info "";
   set $real_script_name $fastcgi_script_name;
   if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
       set $real_script_name $1;
       set $path_info $2;
   }

   fastcgi_param SCRIPT_FILENAME     $document_root$real_script_name;
   fastcgi_param SCRIPT_NAME           $real_script_name;
   fastcgi_param PATH_INFO               $path_info;
}

试试这样。。。/ URL_MODEL用默认值就行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文