【发布时间】:2017-08-07 19:41:37
【问题描述】:
我正在尝试重写
-
web.com/ab到web.com?sys=ab -
web.com/ab/cd到web.com?sys=ab&id=cd -
web.com没有改变。
我写了以下内容:
rewrite ^/(\w+)(/?\w*)$ /?system=$1&id=$2 break;
【问题讨论】:
-
我不能让这个失败。您是否在测试之间清除浏览器的缓存?过时的缓存会导致不可预知的结果。
-
@RichardSmith 是的,当然。我测试了写
?system=test&id=5它有效,但/test/5没有 -
@RichardSmith 当我访问
/test/5时,它会尝试在/test/中找到我的js/css 文件!Unable to find web.com/test/user.css。重写不正确.. -
这是一个不同的问题。如果您对资源文件使用路径相对 URI并且使用“看起来像”子目录的路由,浏览器将通过为明显的子目录添加前缀来请求资源文件。这种方案需要使用绝对路径资源文件。
-
@RichardSmith 但是如果 URL 被重写,浏览器应该看到
?system=2&id=5,而不是子目录...
标签: regex nginx url-rewriting