用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5554|回复: 4
收起左侧

Nginx进行REWRITE 301跳转后地址栏仍然显示跳转后URL是为何呢?

[复制链接]
发表于 2010-5-22 02:40:05 | 显示全部楼层 |阅读模式
Nginx的rewrite如下

rewrite ^/work(.*)$ http://$host/work/index.php$1 permanent;

但我在访问 work/xxx 跳转后 仍然显示 work/index.php/xxx  如何在跳转后仍然显示work/xxx
发表于 2010-5-22 07:17:39 | 显示全部楼层
把规则改成 rewrite ^/work(.*)$ http://$host/work/index.php$1 last;试试
也就是将最后的permanent改为last
 楼主| 发表于 2010-5-22 10:29:45 | 显示全部楼层
把规则改成 rewrite ^/work(.*)$ http://$host/work/index.php$1 last;试试
也就是将最后的permanent改为la ...
haohailuo 发表于 2010-5-22 07:17



    我试了下 仍然没用 我的nginx.conf里这个server是这样写的 是不是和其他的location有关系
server
       {
               listen       80;

               server_name  localhost;
               index index.html index.htm index.php;
               root  /soft/vshare/htdocs;
                location /
                {
                  if ( -d $request_filename )
                  {
                    rewrite "^/(.*)([^/])$" http://$host/$1$2/ permanent;
                  }
                }
                location /work/
                {
                  rewrite ^/work(.*)$ http://$host/work/index.php$1 last;
                }
               location ~ ^(.+\.php)(.*)
                {
                    include fcgi.conf;
                    fastcgi_pass  127.0.0.1:9000;
                    fastcgi_index index.php;
                set $real_script_name $fastcgi_script_name;
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$")
                {
                        set $real_script_name $1;
                        set $path_info $2;
                }
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
                }
log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                                     '$status $body_bytes_sent "$http_referer" '
                                     '"$http_user_agent" $http_x_forwarded_for';
               access_log  /soft/logs/access.log  access;
       }

       server
       {
               listen  80;
               server_name  localhost;

               location / {
                    stub_status on;
                    access_log   on;
               }
       }
发表于 2010-5-22 10:57:13 | 显示全部楼层
回复 3# comboyzq

location /
                {
                  if ( -d $request_filename )
                  {
                    rewrite "^/(.*)([^/])$" http://$host/$1$2/ permanent;
                  }
                }

与你这一段有关系吧
 楼主| 发表于 2010-5-22 11:17:23 | 显示全部楼层
回复  comboyzq

location /
                {
                  if ( -d $request_filename )
         ...
haohailuo 发表于 2010-5-22 10:57



    这里是个自动为目录请求添加“/”的语句 但我把这个rewrite注释掉后仍然不行   郁闷啊 。。。。。 是不是Nginx 有什么设置没打开?

本版积分规则