我正在尝试模拟Multiviews,但我遇到了try_files的问题。一切都还可以,但我想重写所有未设置为/index.php的网址(但不包括404):
location ~ ^(/.+)/ {
try_files $uri $uri/ $1.php?$args @extensionless-php /index.php;
}
location @extensionless-php {
rewrite ^(.*)/ $1.php;
}
所有网址都会重新输入/index.php。如果我在第一个位置结束时删除/index.php,除了未管理的网址(我想要重新编写索引)之外,一切正常。任何的想法?谢谢
答案 0 :(得分:0)
如您所说,您可以尝试从第一个位置删除/index.php
。然后,为了在找不到php文件时将其重定向到/index.php
,您可以在处理location
个请求的.php
中添加几行:
location ~ \.php$ {
if (!-f $request_filename) {
rewrite .* /index.php;
}
# your other directives such as fastcgi_pass 127.0.0.1:9000; etc.
}