本人使用的是IIS中的伪静态 有http.ini文件
现在想实现以下效果:
http://www.xxx.com/任意英文目录/ 映身到 /plug/index.asp?catalog=$1
因为网站根目录下来还有 news / ask 等实际存在的目录,我使用 (a-z) 做规则,会导致实际存在的目录也被映射走了
即
http://www.xxx.com/news/ 这个实际存在的目录 也被伪静为 /plug/index.asp?catalog=news了
问:如何使用规则,排除实际存在的目录
新人,暂时没有C币 麻烦了
新人提人 关于IIS中伪静态规则如何写?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-07 02:17关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要解决这个问题,您需要在您的IIS的http.ini配置文件中添加一个正则表达式来匹配您想要映射的URL。下面是一个简单的示例:
<rewrite> <rules> <rule name="RedirectToPlugIn" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^www\.([A-Za-z]{2,})\." negate="true"/> <add input="{REQUEST_URI}" matchType="IsAbsolute" pattern="^(?!.*\/)(.*)$" negate="true"/> </conditions> <action type="Redirect" url="/plug/index.asp?" permanent="false" redirectType="301" appendQueryString="true"/> </rule> </rules> </rewrite>在这个例子中,我们首先检查请求的主机名是否以
www.开头,并且请求的URI是否只包含字母和数字字符(即不包含斜杠)。如果满足这些条件,我们就将请求重定向到/plug/index.asp?。请注意,这个正则表达式的精确匹配可能会导致一些问题,特别是当域名中有多个层次时。例如,如果域名是
www.example.org, 则www.example.org/news将被映射到/plug/index.asp?catalog=news。此外,这个正则表达式也没有考虑子目录的存在。如果您希望处理这种情况,您可能需要修改它以包括子目录的匹配。
最后,请注意,这只是一个基本的示例,您可以根据自己的需求进行调整。
解决 无用评论 打赏 举报