【问题标题】:PHP on IIS get the current rewritten URLIIS 上的 PHP 获取当前重写的 URL
【发布时间】:2013-08-20 08:55:12
【问题描述】:

有没有办法在 IIS 上用 PHP 获取当前完全重写的 URL。

例如,我有一个类似的 URL:

http://www.domain.com/searchresults.php?section=99&page=1&model=section-name

重写为: http://www.domain.com/section99/page1/section-name

我已经能够使用以下方法拼凑原始 URL:

function selfURL(){
    if(!isset($_SERVER['REQUEST_URI'])){
        $serverrequri = $_SERVER['PHP_SELF'];
    }else{
        $serverrequri =    $_SERVER['REQUEST_URI'];
    }
    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
    $protocol = "http";
    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
    return $protocol."://".$_SERVER['SERVER_NAME'].$port.$serverrequri.$_SERVER['QUERY_STRING'];   
}
print(selfURL());

我是否可以轻松选择重写后的 URL,以避免根据当前页面类型从多种不同格式和变量中计算出友好 URL 的开销?

【问题讨论】:

  • 您是否在为 IIS 使用 ISAPI_Rewrite?
  • 你到底想做什么?获取非重写 URL 的重写 URL?为什么?为什么不一直使用重写后的 URL?
  • 没有。我们在 IIS7 上并使用内置的重写模块
  • 这就是我想要做的。使用重写的 URL。我试图抓住这个。我的问题是我只能获取原始 URL 而不是重写的 URL
  • 我建议您在 .htaccess 文件中使用 Apache 的 mod_rewrite 规则,然后将它们导入 IIS 7。这将生成 web.config 文件。

标签: php iis


【解决方案1】:

我建议您在 .htaccess 文件中使用 Apache 的 mod_rewrite rules,然后将它们导入 IIS 7。这将生成 web.config 文件。

当然,如果您知道如何直接在web.config 上工作,那就去吧!

【讨论】:

    【解决方案2】:

    我可以使用:

    HTTP_X_ORIGINAL_URL

    function selfURL(){
        if(!isset($_SERVER['REQUEST_URI'])){
            $serverrequri = $_SERVER['PHP_SELF'];
        }else{
            $serverrequri =    $_SERVER['REQUEST_URI'];
        }
        $protocol = empty($_SERVER["HTTPS"]) ? 'http' : ($_SERVER["HTTPS"] == "on") ? "https" : "http";
        $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
        return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER["HTTP_X_ORIGINAL_URL"];
    }
    print(selfURL());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2016-05-06
      • 2011-01-15
      相关资源
      最近更新 更多