对于我正在运行的一些非CMS网站,我有兴趣从Apache / mod_PHP切换到Nginx.有问题的网站要么是完全静态的HTML文件,要么是简单的PHP,但他们共同的一点是我正在使用Apache的mod_negotiation来提供它们而不需要文件扩展名.我不关心实际的内容谈判;我正在使用它,所以我不必在我的URL中使用文件扩展名.
例如,/ info/contact.PHP中的文件是通过/ info / contact的URL访问的
实际文件是该位置的.PHP文件,但我不在URL中使用该扩展名.这为我提供了更短,更清晰的URL,也没有向用户公开实质上无意义的实现细节.在Apache中,所有这些都是启用mod_negotiation并将MultiViews添加到站点的选项中.在Nginx中我收集到的我会以某种方式重写,但是对Nginx不熟悉,我不确定如何做到这一点.
这些网站目前在从Nginx到Apache的代理工作正常,但我想尝试使用Nginx / fastcgi来运行它们.只要我使用扩展,它们就可以正常工作,因此fastcgi方面工作得很好.我现在关心的是删除这些扩展.
重要的是要记住,在子目录的情况下,文件名并不总是在URL中.那是,
/ foo / bar应该查找/foo/bar.PHP或/foo/bar/index.PHP
/ foo /应该寻找/foo/index.PHP
最佳答案