最近我将使用 PHP/Apache 的网站更改为 Django/Nginx。我想给出一个 http 响应 301 并将所有在 url 中包含“.php”的请求重定向到我的主页。
例子:
example.com/**?page=show.php&id=2748**
example.com/**index.php?page=show_page.php&id=2748**
Run Code Online (Sandbox Code Playgroud)
“.php”可以在 URL 中的任何位置。
我试过:
location ~ \.php {
rewrite ^/(.*) http://www.example.com permanent;
}
Run Code Online (Sandbox Code Playgroud)
但是,当然,它只在最后有 .php 时才有效。有人可以给我一个线索吗?
更新:如果我使用这个解决方案:
if ($request_uri ~* "php") {
rewrite ^/(.*) http://www.example.com permanent;
}
Run Code Online (Sandbox Code Playgroud)
我在日志中收到以下错误:
[29/Aug/2011:13:30:25 -0300] "GET /?page=show_page.php&id=2748 HTTP/1.0" 301 184 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0"
[29/Aug/2011:13:30:26 -0300] "GET /?page=show_page.php&id=2748 HTTP/1.0" 301 184 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0"
[29/Aug/2011:13:30:26 -0300] "GET /?page=show_page.php&id=2748 HTTP/1.0" 301 184 …
Run Code Online (Sandbox Code Playgroud)