我正试图让我的php文件在浏览器中不带.php
扩展名的情况下运行,并将所有文件重定向到非.php
我已经设置好了,两者都可用。在浏览器上使用.php而不使用.php
。但现在只需要重写一下。
你能帮我解决他们的问题吗?
location / {
try_files $uri $uri $uri/ @extensionless-php;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
向致以最良好的问候
您可能有一个location ~ .php
块来处理以.php
结尾的URI。您应该在该块中包含一个try_files $uri =404;
语句,以避免将不受控制的请求传递给PHP。
您还可以向该块添加internal
指令,这将阻止对.php
URI的外部访问,这样只有您的无扩展PHP URI才能工作。有关详细信息,请参阅本文档。
例如:
location ~ .php$ (
internal;
try_files $uri =404;
...
}
如果您想在无意中出现以.php
结尾的URI时将浏览器重定向为使用无扩展PHP,则需要查看原始请求URI,否则将面临重定向循环的风险。
例如:
if ($request_uri ~ .php($|?))
{
rewrite ^(.*).php$ $1 permanent;
}
关于if
的使用,请参阅此注意事项。