【发布时间】:2016-02-03 08:05:02
【问题描述】:
我正在构建一个 NGINX 虚拟主机,它应该:
- 将以 .php 结尾的页面重定向到不带扩展名的版本(301 重定向)
- 正确处理不以 .php 结尾的 URL,将它们传递给 FASTCGI 以执行 php
我的问题是这实际上会创建一个无限重定向循环。我在这里错过了什么?
server {
server_name ~^my\.domain\.com$;
listen 80;
root /path/to/root;
error_page 404 /404.php;
location ~ \.php$ {
rewrite ^(.*)\.php$ $1 permanent;
break;
}
location / {
index index.php;
try_files $uri $uri/ @extensionless-php;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# rest of fastcgi configuration...
}
}
【问题讨论】: