我正努力在nginx上创建一个简单的重写url.
我的配置如下所示:
location /foo/bar {
rewrite ^/(.+)$ /index.php?p=$1 break;
}
Run Code Online (Sandbox Code Playgroud)
例如/foo/bar/baz
应该/foo/bar/index.php?p=baz
(当然在内部)
但是,通过访问的所有内容都会/foo/bar/
触发位于根目录下的index.php的下载.我如何让它工作?
我也试过使用try_files
但无法弄清楚如何排除/foo/bar/
路径$uri
.
Chu*_* Ma 10
更改
rewrite ^/(.+)$ /index.php?p=$1 break;
Run Code Online (Sandbox Code Playgroud)
至
rewrite ^/(.+)$ /index.php?p=$1 last;
Run Code Online (Sandbox Code Playgroud)
基于http://wiki.nginx.org/HttpRewriteModule#rewrite,
last - 完成当前重写指令的处理并重新启动该过程(包括重写),并搜索来自所有可用位置的URI匹配.
[编辑]使用break将保持在同一位置块内.在您的情况下,该位置块内没有其他规则.因此,默认情况下,nginx会将其作为文件请求提供.
归档时间: |
|
查看次数: |
2807 次 |
最近记录: |