【发布时间】:2021-08-25 03:05:21
【问题描述】:
我有以下 web.config 我在其中添加了 URL 重写和重定向规则。这是部分工作。
代码:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<caching enabled="false" />
<rewrite>
<rules>
<rule name="Rewrite to pages.asp">
<match url="^pages/([_0-9a-z-]+)" />
<action type="Rewrite" url="pages.asp?p={R:1}" />
</rule>
<rule name="Redirect from pages.asp">
<match url="^pages/([_0-9a-z-]+)" />
<action type="Redirect" url="pages/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
网址结构如下:
https://www.example.com/pages.asp?p=my-article
重写应该是这样的(并且有效):
https://www.example.com/pages/my-article/
如果我手动访问此 URL,它可以工作,但重定向部分无法正常工作。这段代码有问题。
【问题讨论】:
-
您是否收到诸如“此页面未正确重定向”之类的错误?如果是这样,可能是由于无限重定向循环。考虑将
stopProcessing="true"添加到重写规则中,以防止(再次)应用重定向规则。 -
为什么需要重定向规则?请解释一下你想用它做什么。
-
@FlorianWinter 我没有收到这种错误。但是为了安全起见,我添加了这个参数。
-
@LexLi 实际上应用程序中有很多页面(由 Google 索引),因此我希望它们重定向。我已经尝试过入站/出站规则,但我无法正确理解它们。
-
如果您的目标是将旧链接(如
pages.asp?p=my-article)重定向到无扩展版本,那么您编写的重定向规则完全错误(因为您尝试匹配错误的内容)。
标签: asp.net web-config iis-10