页面没有正确重定向 - PHP和IIS重定向循环

时间:2015-05-07 06:13:34

标签: php redirect iis

我有一个 PHP 网站,该网站位于 Windows(IIS)中。该域名位于Network Solutions,但该站点位于 GoDaddy ,因此我在Network Solutions上有一个DNS条目,可以解析" www &# 34;和" 非www "我的代码所在的GoDaddy服务器的名称。

当我在IIS web.config文件中放置重定向规则以重定向来自各个页面的请求时,我得到的似乎是重定向循环。
Firefox 说:

  

该页面未正确重定向

IE 只是说:

  

无法显示页面

Chrome 说:

  

此页面有一个重定向循环

所以我去了 Fiddler ,它验证了一堆请求,每个人都说服务器正在报告" Object Moved. This document may be found here" (使用"此处"是应该被重定向到的页面的超链接),只有它一遍又一遍地发生(循环)。

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

这是我的web.config文件(实际网址替换为"示例"):

<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>

有人建议删除&#34; http://&#34;从上面的动作,我尝试过,但我仍然得到错误。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

DOH!我累了。