【问题标题】:The page isn't redirecting properly - PHP and IIS redirect loop页面未正确重定向 - PHP 和 IIS 重定向循环
【发布时间】:2015-07-17 13:31:16
【问题描述】:

我有一个托管在 Windows (IIS) 中的 PHP 网站。该域在 Network Solutions 拥有,但该站点托管在 GoDaddy,因此我在 Network Solutions 有一个 DNS 条目,可以解析“www”和“non-www" 我的代码所在的 GoDaddy 服务器的名称。

当我在我的 IIS web.config 文件中添加重定向规则以重定向来自不同页面的请求时,我看到了一个重定向循环。
Firefox 说:

页面未正确重定向

IE 只是说:

页面无法显示

Chrome 说:

这个页面有一个重定向循环

所以我去了 Fiddler,它验证了一堆请求,每个请求都说服务器正在报告“Object Moved. This document may be found here”(其中“这里”是指向应该获取的页面的超链接重定向到),只有它一遍又一遍地发生(循环)。

这可能是因为网站托管在域所在的其他地方吗?我被卡住了。

这是我的 web.config 文件(实际 URL 替换为“示例”):

<rewrite>
   <rules>
      <rule name="Redirect to forums" stopProcessing="true">
         <match url=".*" />
         <conditions>
            <add input="(.*\.mysite.com)/([_0-9a-z-]+)" />
         </conditions>
         <action type="Redirect" url="http://www.example.com/forums.php" />
      </rule>
   </rules>
</rewrite>

有人建议从上面的操作中删除“http://”,我试过了,但我仍然收到错误。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 我从未使用过 IIS,但在 apache 的 .htaccess 中,您可以添加 HTTP 响应状态代码以及重定向。例如,301 用于当页面为 permanently moved 时。

标签: php redirect iis


【解决方案1】:

刚刚注意到一个愚蠢的错误:在块中,

<add input="(.*\.mysite.com)/([_0-9a-z-]+)" />

应该已经指定要搜索的区域,以及要在单独的参数中匹配的模式。没有“模式=”声明!应该是这样的:

<add input="{HTTP_HOST}" pattern="(.*\.mysite.com)/([_0-9a-z-]+)" />

DOH!我累了。

【讨论】:

    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2017-01-18
    • 2011-08-11
    • 2018-06-08
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多