我是nginx的新手,我正在尝试配置nginx以使用url中第一个目录的名称将深层目录重写为php。例如:
http://domain.com/news/search/band/ -> news.php
http://domain.com/article/blue/300/?arg=10 -> article.php?arg=10
http://domain.com/xxx/yyy/zzz/ -> xxx.php
我尝试了一些正则表达式并使用:
try_files $uri $uri/ @extensionless-php /index.php?$args =404;
但我没有成功;有人能帮助我吗?谢谢
答案 0 :(得分:0)
回复自己:
许多apache安装都启用了多视图。您可以使用try_files指令再次执行此操作:
location ~ ^(/.+)/ {
try_files $uri $1?$args $1.php?$args;
}
虽然它并没有完全按照Apache中的Multiviews做什么,(比如可以省略文件扩展名),但在PHP配置中,它需要上述行为的9倍,让PHP文件处理所有请求包含文件名和附加的斜杠。