我已经设置了我的第一个 Nginx 网站,并且重要的重写都已完成。它们必须是手动的,没有规则可以处理它,因此我制定了一系列规则来处理可能被索引或收藏的旧 URL:
rewrite ^/html/Air_III.html /designers-elements-air permanent;
在我们尚未访问的网站部分,还有一组奇怪的文件似乎获得了流量,所以我只是将它们复制过来。其中大部分文件已从旧的 .html 重命名为 .php,其余部分保持不变,但可能有些文件仍是 .html。
我正在寻找一条规则,该规则可以处理对任何目录中的任何 .html 文件的请求情况,该文件实际上与该名称的当前文件不匹配,并且如果存在则重写为 .php 文件。
用“Apache 语言”来说,这将是一次redirect permanent
重写。我宁愿不去追踪所有这些并手动完成它们!
答案1
你需要一个if
陈述检查文件存在并适当重写:
location ~ \.html$ {
if (!-f $request_filename) {
rewrite ^(.*)\.html$ $1.php permanent;
}
}