在我的nginxconfiguration中,我想捕捉/ foo /并使用位置进行重写,但忽略/ foo / anything-else
我试过了:
location = /foo-bar/ {
和
location ~ ^/foo-bar/$ {
和
location ~ /foo-bar/ {
但它也捕捉并重写
/foo-bar/?t=aaa-bbb-ccc
我怎么只捕捉
/foo-bar/
并不是
/foo-bar/?t=aaa-bbb-ccc
?
谢谢。
location = /foo/ { rewrite ^ … redirect; } location ~ /foo/ { return 404; }
如果这不起作用,它必须是301 Moved Permanently
响应的臭名昭着的永久caching – 用curl -v
试试你的请求,以确保它的工作或不工作,和/或清除你的Gecko的整个caching或其他浏览器(在Gecko中没有其他解决方法(除了清除整个caching) – Shift-refresh技巧不适用于301
)。
更新:如果还需要确保不接受任何参数(例如/ foo /?test),请使用以下命令:
location = /foo/ { if ($args) { return 403; } rewrite ^ … redirect; }
根据cnst答案中的评论线索,我用:
if ($request_uri = "/foo-bar/") { rewrite ^ … permanent; }
而我从来没有用过
/location/