[英]Regular expressions in URL Rewrite Module for IIS7
如果url没有扩展名,我有以下重写规则来附加.aspx
扩展名。
<rule name="SimpleRewrite" stopProcessing="true">
<match url="^(.*(?<=/)([^/.]*))$" />
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
但是规则不起作用:
Error HTTP 500.52 - URL Rewrite Module Error.
The expression "^(.*(?<=/)([^/.]*))$" has an invalid syntax.
但是,此正则表达式适用于.NET。 IIS Url重写模块支持哪些正则表达式? 如何做出积极的回顾断言?
也许.*/[^/.]+$
会满足你的需求吗? 重写只是“{R:0} .aspx”
编辑(响应评论):如果你想包含简单的文件名,你可以写
^(.*/)?[^/.]+$
听起来你的问题可能有一个更简单的解决方案,不需要正则表达式,但如果没有,这可能会有所帮助。
快速:尝试一个mod-rewrite clone IIS插件,如ISAPI_Rewrite Lite,用于复杂的常规表达式。
很久:大约一年前我在Drupal网站上进行了ISS部署,其中所有主要,次要和我认为三级链接都由Drupal处理,但更深层次的遗留内容应该照常提供(而不是被Drupal接管404)。
我们使用了ISAPI_Rewrite 3,这是Apache的mod_rewrite的“端口”(兼容语法),用于在遗留内容和drupal之间进行定位,使用一系列重写过滤器和规则,在检出遗留文件夹中的URL之前检查任何内容Drupal处理剩下的事情。
http://www.helicontech.com/isapi_rewrite/
ISAPI_Rewrite Lite是免费的,具有我需要的所有功能。 另外,你可以到处购物,Helicon并不是唯一一家为IIS创建Mod-Rewrite克隆插件的公司。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.