我在为 IIS 7 中的 URL 重写编写正则表达式模式时遇到问题。我直接在我的 web.config 文件中完成这项工作,我需要帮助的模式如下所述:
传入的 URL 如下:http://www.domain.com/user/<USERNAME>/subscribers
需要重写到文件中:http://www.domain.com/subscribers.php?u={R:1}
Where{R:1}
与在 web.config 文件中的含义相同,并且应该等于<USERNAME>
URL 中传递的值。
我今天已经搜索了几个小时,昨天又搜索了几个小时,但对此几乎没有任何建议。我对正则表达式不是很熟悉,但是学到了很多东西来尝试解决这个问题,但无济于事。
提前致谢!
更新
- 该
<USERNAME>
值可以包含任何字母数字字符(0-9、AZ 和 az)以及下划线和句点。 - 我用重写模块尝试了各种不同的模式。我开始的一个是这样的:
^user/(.+)/subscribers$
该重写的完整 XML 块是这样的:
<rule name="User Subscribers">
<match url="^user/(.+)/subscribers$" />
<action type="Rewrite" url="subscribers.php?u={R:1}" />
</rule>
该格式适用于其余的重写,但是一旦我尝试在正则表达式模式之后粘贴静态的非正则表达式文本,我就无法让它工作。问题归结为: 的值<USERNAME>
被设置为我想要的值,"/subscribers"
重写的部分附加到末尾。