CI框架在nginx下rewrite的问题

天南海北 发布于 2014/12/11 18:02
阅读 1K+
收藏 0
各位好,我用了CI框架,现有个需求想将

http://xxxx.com/game/info/28  替换成  http://xxxx.com/game/28.html
附本人的nginx.conf如下:
server
 {
   listen 80;
   server_name xxxx.com;
   index index.html index.htm index.php default.html default.htm default.php;
   root /mnt/hgfs/xxxx.com;
   if (!-f $request_filename) {
     rewrite . /index.php last;
   }
   location ~ [^/]\.php(/|$)
     {
       try_files $uri =404;
       fastcgi_pass unix:/tmp/php-cgi.sock;
       fastcgi_index index.php;
       include fastcgi.conf;
       #include pathinfo.conf;
     }

   #rewrite  /game/index/$1  /game/(.*?).html  last;
   rewrite  /game/$1.html  /game/index/(.*?)    last;

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
     {
       expires 30d;
     }
   location ~ .*\.(js|css)?$
     {
       expires 12h;
     }
   access_log /home/wwwlogs/$server_name  access;
 }

请问哪里不正确呢?应该怎么改正?谢谢!

加载中
0
gat205
gat205
#rewrite  /game/(.*?).html /game/index/$1   last;

   rewrite  /game/index/(.*?) /game/$1.html     last;

反着试下?一般url重写都是正则在前。。

天南海北
天南海北
谢谢你,我试着这么写,发现还是不行。请问有解决办法吗? if (!-f $request_filename) { rewrite . /index.php last; } location ~ /game/index{ rewrite ^/game/(\d*?).html$ /index.php/game/index/$1 last; }
0
gat205
gat205
rewrite   ^/game/( [0-9]*).html&  /index.php/game/info/$1    last;试试?
天南海北
天南海北
回复 @gat205 : 好的!非常感谢!
gat205
gat205
@天南海北 我晚上回去再自己vps上试试。。
天南海北
天南海北
这样也试过,应该是不行的 我找了些资料,nginx下应该要开启pathinfo功能,默认是没开启的吧。
0
hmh
hmh
其实直接是CI的路由那里写就可以了。
返回顶部
顶部