Php 如何检测Apache或IIS中何时使用了URL重写?

Php 如何检测Apache或IIS中何时使用了URL重写?,php,apache,iis,url-rewriting,Php,Apache,Iis,Url Rewriting,问答-URL重写检测 检测Apache2.4或IIS中是否启用了URL重写模块非常简单,但是如何检测是否实际使用了重写 在最近的迭代中,我亲自四处寻找了一个在两种环境下都能工作的单一解决方案,但最终不得不自己对服务器变量进行排序,以找出未重写URL和重写URL之间的差异。Q&a-URL重写检测 可以使用以下方法检测是否在任何给定请求中实际使用了重写: function IsRewrite() { if(!empty($_SERVER['IIS_WasUrlRewritten']))

问答-URL重写检测

检测Apache2.4或IIS中是否启用了URL重写模块非常简单,但是如何检测是否实际使用了重写

在最近的迭代中,我亲自四处寻找了一个在两种环境下都能工作的单一解决方案,但最终不得不自己对服务器变量进行排序,以找出未重写URL和重写URL之间的差异。

Q&a-URL重写检测

可以使用以下方法检测是否在任何给定请求中实际使用了重写:

function IsRewrite()
{
    if(!empty($_SERVER['IIS_WasUrlRewritten']))
        return true;
    else if(array_key_exists('HTTP_MOD_REWRITE',$_SERVER))
        return true;
    else if( array_key_exists('REDIRECT_URL', $_SERVER))
        return true;
    else
        return false;

}
如果未使用URL重写,则根本不会设置上述变量。根据Apache的版本,后两个变量中的至少一个将被分配,在IIS下,列表中的第一个变量将被分配。

Q&A-URL重写检测

可以使用以下方法检测是否在任何给定请求中实际使用了重写:

function IsRewrite()
{
    if(!empty($_SERVER['IIS_WasUrlRewritten']))
        return true;
    else if(array_key_exists('HTTP_MOD_REWRITE',$_SERVER))
        return true;
    else if( array_key_exists('REDIRECT_URL', $_SERVER))
        return true;
    else
        return false;

}
如果未使用URL重写,则根本不会设置上述变量。根据Apache的版本,后两个变量中的至少一个将被分配,在IIS下,列表中的第一个变量将被分配