小编Mar*_*Or.的帖子

如何以编程方式查找Web服务器实例是否支持url重写

我想问的是,是否有办法找出Web服务器实例是否启用了URL重写.我需要这个,以便能够实例化正确类型的URL处理程序.

从理论上讲,如果你启用或不启用它,你事先就知道了,可以用它来配置它.但是,我希望能够在运行时自动检测此设置.

URL重写规则将非常简单,如:

^/(.*)$ => /bootstrap.php
Run Code Online (Sandbox Code Playgroud)

这可以保证REQUEST_URI中存在相关字符串,但不会污染_GET数组.

到目前为止,我的研究对我有何看法:

  1. Apache的.
    在我看来,Apache有一个非常古怪的方法,因为它设置了REDIRECT_SCRIPT_URI重写URL 的标题,但不是那些没有重写的标题.
    例如

    http://host/ana/are/mere
    将被重写为index.php所以前面的标题会出现,但是
    http://host/
    不会重写.

  2. Lighttpd的.
    具有fast-cgi的Lighttpd表现良好,如果为当前主机启用了URL Rewrite,则设置REDIRECT_URI标头.这很可靠.

  3. 切诺基.
    好吧,对于切诺基来说,我找不到任何方法,因为它使用(在我看来)一种更复杂的方法来获取URL重写.(即,它被称为内部重定向 - 并且fcgi进程不知道请求被重定向)

另外我没有测试过其他http服务器,如nginx,所以如果有人对此事有一些意见,我很乐意听到.

php url-rewriting

14
推荐指数
3
解决办法
1886
查看次数

标签 统计

php ×1

url-rewriting ×1