我想将所有对不存在的子目录、不存在的文件以及不存在的子目录中的文件的请求重定向回根页面。
Ex. sampledomain.com/jahsdjksf/sfhsafh.php
or sampledomain.com/jahsdjksf/sdfsndf/sfhsafh.php
or sampledomain.com/sfhsafh.php
全部返回至sampledomain.com
目前我已将以下内容添加到我的规则中
root /home/nginx/domains/randwebsite.com/public/;
index index.php;
和
try_files $uri $uri/ /index.php;
但问题是,当我尝试任何随机的不存在的子目录时,它都会加载该 url 下的主页,并且它会损坏,因为 css 等正在使用该 url 和不存在的子目录,但只适用于没有添加子目录的不存在的文件
ex. sampledomain.com/sdlfsdlfsf.php
答案1
如果你想强制重定向,可以使用命名位置。以下方法可能对你有用:
root /home/nginx/domains/randwebsite.com/public;
index index.php;
location / {
try_files $uri $uri/ @redirect;
}
location ~ \.php$ {
try_files $uri @redirect;
...
}
location @redirect {
return 301 /index.php;
}
看这个文件了解更多信息。