我对重定向没有任何问题,但是当我取消注释2行时,"如果文件夹不存在"检查,我在任何页面上都收到404错误。我不明白为什么,这是它的基本功能。
我需要将带有尾部斜杠的所有请求重定向到没有它的URL。唯一的例外是当存在具有该URL的文件夹时。
location / {
#if (!-d $request_filename) {
rewrite ^/(.*)/$ /$1 permanent;
#}
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$request_uri;
}
答案 0 :(得分:0)
关于if
的使用,您应该阅读this caution。
你可以尝试另一种方法,只有在 try_files处理了它可以执行的URI之后才重写:
location {
index index.php index.html index.htm;
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)/$ /$1 permanent;
rewrite ^ /index.php?q=$request_uri last;
}
有关详情,请参阅this document。