正则表达式匹配url中的单个文件夹,用于web.config URL重写

时间:2017-04-07 08:31:58

标签: regex url-rewriting web-config

我们目前使用相当垃圾的正则表达式(显然)来匹配用户名后的网址,将其重写为个人资料页面。

<rule name="Profiles" stopProcessing="true">
                <match url="(?:\w|[-_.])+" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{DOCUMENT_ROOT}/{R:0}" matchType="IsFile" negate="true" />
                    <add input="{DOCUMENT_ROOT}/{R:0}.php" matchType="IsFile" negate="true" />
                    <add input="{DOCUMENT_ROOT}/{R:0}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="/profile.php?username={R:0}" appendQueryString="true" />
            </rule>

我刚刚意识到这种匹配方式超出了要求,而且破损的图片/网址也试图加载个人资料页面。

我正在使用匹配的正则表达式。

/myusername
/myusername/

允许字母数字和下划线,但不允许任何额外的斜线......

E.g。 /qweqwe/qweqwe会失败。

0 个答案:

没有答案