为了账号安全,请及时绑定邮箱和手机立即绑定

nginx重写:如果$uri 不是文件不是目录 跳转到$uri/

nginx重写:如果$uri 不是文件不是目录 跳转到$uri/

Qyouu 2019-04-16 20:26:24
配置nginx1.6.2要求访问$uri如果1)如果存在文件/Vhost/$http_host/$uri,访问的是该文件2)否则如果$uri不是以“/”结尾301跳转到$uri/3)否则如果$uri以“/”结尾且存在/Cache/$http_host/$uri/index.html,访问的是该文件4)否则指向/index.php(ThinkPHP框架)例子访问http://www.a.com/robots.txt->/Vhost/www.a.com/robots.txt访问http://a.com/robots.txt->301跳转->http://www.a.com/robots.txt访问http://www.c.com/sitemap.html->/Vhost/www.c.com/sitemap.html访问http://www.d.com/game/->/Cache/www.d.com/game/index.html访问http://www.d.com/news/1000011->301跳转到->http://www.d.com/news/1000011/访问http://www.d.com/news/1000011/->/index.php(当该/Cache/www.d.com/news/1000011/index.html不存在的时候)访问http://www.d.com/news/1000011/->/Cache/www.d.com/news/100011/index.html(当该/Cache/www.d.com/news/1000011/index.html存在的时候)配置server{listen80;server_namewapwap.locm.wap.locwap.locm.xxx.comgame1.wap.locgame2.wap.locgame3.wap.loc;location/{rootd:/wap_dev;indexindex.htmlindex.htmindex.php;try_files$uri/Vhost/$http_host/$uri/Cache/$http_host/$uri/index.html/index.php?s=$uri&$args;location~\.php${try_files$uri=404;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}}#error_page404/404.html;#redirectservererrorpagestothestaticpage/50x.html#error_page500502503504/50x.html;location=/50x.html{roothtml;}location~/\.(ht|svn|git){denyall;}}问题已经实现了上面的1、3、4,还有2未实现。上面第3)点打错字了,是如下的。已经修改了的,但是sg没有变化3)否则如果$uri以“/”结尾且存在/Cache/$http_host/$uri/index.html,访问的是该文件补充1)如何才可以不是以/结尾且不是以.xml结尾且不是以.html.htm结尾的才跳转现在是不是以/结尾的跳转,导致.xml结尾.html结尾的也都跳转自己写了一段,但是失败:rewrite([^\/]|\.xml|\.html?)$$uri/permanent;
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

你需要使用一个@开头的namedlocation来解决这个问题。
#如果找不到任何匹配的文件就会进入@rewritelocation来决定如何rewrite
try_files$uri/Vhost/$http_host/$uri/Cache/$http_host/$uri/index.html@rewrite;
location@rewrite{
#如果末尾不是/,301跳转
rewrite[^\/]$$uri/permanent;
#默认交给index.php来处理
rewrite./index.php?s=$uri&$argslast;
}
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 296 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信