URL 重定向适用于本地主机但不适用于服务器
URL Redirect works on localhost but not server
这是我的 web.config
重定向规则:
<rewrite>
<rules>
<rule name="Redirect from old page">
<match url="^oldpage.aspx" />
<action type="Redirect" url="pages/newpage.aspx" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
在 localhost
上,此重定向规则工作正常。
当我将配置文件发布到 IIS 时,重定向规则似乎破坏了 Web 应用程序。我尝试转到的每一页 returns 出现 500 错误。
注意:Web 应用程序使用 IP 地址而不是域名。
示例:我想将 http://192.168.168.255:44/oldpage.aspx?queryString=parameter
重定向到 http://192.168.168.255:44/newpage.aspx?queryString=parameter
,但我收到 500 错误。即使我想访问 http://192.168.168.253
,我也会收到 500 错误。
IIS 说:
Delete the malformed XML element from the ApplicationHost.config file or from the Web.config file.
但是,我无法确定此重定向规则的格式有何错误。它在本地主机上工作得很好。我应该在 match url
节点中包含完整的 IP 地址吗?如果是这样,我将如何格式化它?
您确定服务器上也安装了 IIS 重写模块吗?否则 IIS 将无法识别重写节点并给出 500 错误。
http://www.iis.net/downloads/microsoft/url-rewrite
这是我的 web.config
重定向规则:
<rewrite>
<rules>
<rule name="Redirect from old page">
<match url="^oldpage.aspx" />
<action type="Redirect" url="pages/newpage.aspx" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
在 localhost
上,此重定向规则工作正常。
当我将配置文件发布到 IIS 时,重定向规则似乎破坏了 Web 应用程序。我尝试转到的每一页 returns 出现 500 错误。
注意:Web 应用程序使用 IP 地址而不是域名。
示例:我想将 http://192.168.168.255:44/oldpage.aspx?queryString=parameter
重定向到 http://192.168.168.255:44/newpage.aspx?queryString=parameter
,但我收到 500 错误。即使我想访问 http://192.168.168.253
,我也会收到 500 错误。
IIS 说:
Delete the malformed XML element from the ApplicationHost.config file or from the Web.config file.
但是,我无法确定此重定向规则的格式有何错误。它在本地主机上工作得很好。我应该在 match url
节点中包含完整的 IP 地址吗?如果是这样,我将如何格式化它?
您确定服务器上也安装了 IIS 重写模块吗?否则 IIS 将无法识别重写节点并给出 500 错误。 http://www.iis.net/downloads/microsoft/url-rewrite