我正在尝试将带有 PHP 扩展的页面自动重定向到非扩展页面版本,例如example.com/page.php
。example.com/page
我已设法使此功能适用于除我的主页和动态页面之外的所有页面。这些页面都返回404
错误页面。
对于主页,如果我尝试访问,example.com
我会得到404
响应,但如果我访问,example.com/index
则主页会加载。
我显然希望主页能够像这样加载example.com
,并且动态页面也能够像这样加载example.com/check/something.com
。
相关代码如下:
server {
index index.php index.html index.htm;
location / {
try_files $uri /$uri /index.php?$args;
sendfile off;
# returns a 404 e.g example.com/check/something.com
rewrite ^/check/(.*)$ /check.php?url=$1&name=&submitBtn=check;
}
# If PHP extension then 301 redirect to semantic URL
location ~ ^(.*)\.php$ {
return 301 $scheme://$server_name$1$is_args$args;
}
location ~ ^/(.*) {
try_files $uri.php @static; # If static, serve it in @static
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$1.php;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
location @static {
try_files $uri =404;
}
}
谢谢 :)