我想问的是,是否有办法找出Web服务器实例是否启用了URL重写.我需要这个,以便能够实例化正确类型的URL处理程序.
从理论上讲,如果你启用或不启用它,你事先就知道了,可以用它来配置它.但是,我希望能够在运行时自动检测此设置.
URL重写规则将非常简单,如:
^/(.*)$ => /bootstrap.php
Run Code Online (Sandbox Code Playgroud)
这可以保证REQUEST_URI中存在相关字符串,但不会污染_GET数组.
到目前为止,我的研究对我有何看法:
Apache的.
在我看来,Apache有一个非常古怪的方法,因为它设置了REDIRECT_SCRIPT_URI重写URL 的标题,但不是那些没有重写的标题.
例如
http://host/ana/are/mere将被重写为index.php所以前面的标题会出现,但是
http://host/不会重写.
Lighttpd的.
具有fast-cgi的Lighttpd表现良好,如果为当前主机启用了URL Rewrite,则设置REDIRECT_URI标头.这很可靠.
切诺基.
好吧,对于切诺基来说,我找不到任何方法,因为它使用(在我看来)一种更复杂的方法来获取URL重写.(即,它被称为内部重定向 - 并且fcgi进程不知道请求被重定向)
另外我没有测试过其他http服务器,如nginx,所以如果有人对此事有一些意见,我很乐意听到.