Web.config 中的正则表达式重写部分小写规则 URL
Regex in Web.config Rewrite Rules for partial lowercase URL
对于 SEO,我希望我的 URL 保持一致,但我不希望这影响任何查询参数。例如:
这些网址:
- https://www.eXample.com/blog/article/
- https://www.example.com/Blog/article/
- https://www.example.com/blog/aRtiCle/
- https://www.eXamPle.com/bLoG/aRtiClE/
都应该变成:
但是这个:
应该是:
我有一些东西有时可以用这个:
<rule name="LowerCaseRule" stopProcessing="true">
<match url="([A-Z]+)(.*)" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{R:1}{R:2}}" redirectType="Permanent" />
</rule>
感谢 John
的有用评论,我让它像这样工作:
<rule name="LowerCaseRule" stopProcessing="true">
<match url="^(.*?)(\?.*|$)" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{SERVER_NAME}" pattern="[A-Z]" ignoreCase="false" />
<add input="{PATH_INFO}" pattern="[A-Z]" ignoreCase="false" />
</conditions>
<action type="Redirect" url="{ToLower:{R:1}}{R:2}" redirectType="Permanent" />
</rule>
对于 SEO,我希望我的 URL 保持一致,但我不希望这影响任何查询参数。例如: 这些网址:
- https://www.eXample.com/blog/article/
- https://www.example.com/Blog/article/
- https://www.example.com/blog/aRtiCle/
- https://www.eXamPle.com/bLoG/aRtiClE/
都应该变成:
但是这个:
应该是:
我有一些东西有时可以用这个:
<rule name="LowerCaseRule" stopProcessing="true">
<match url="([A-Z]+)(.*)" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{R:1}{R:2}}" redirectType="Permanent" />
</rule>
感谢 John
的有用评论,我让它像这样工作:
<rule name="LowerCaseRule" stopProcessing="true">
<match url="^(.*?)(\?.*|$)" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{SERVER_NAME}" pattern="[A-Z]" ignoreCase="false" />
<add input="{PATH_INFO}" pattern="[A-Z]" ignoreCase="false" />
</conditions>
<action type="Redirect" url="{ToLower:{R:1}}{R:2}" redirectType="Permanent" />
</rule>