[英]IIS Rewrite Rule to get last part of dash delimited filename
我正在使用IIS 8.5和重写模块,并试图提出一条规则来实现以下目标
实际网址http://www.mywebsite.com/detail/name-of-my-product-3500.php
我想为上述示例创建规则的重写将实现以下http://www.mywebsite.com/detail/?id=3500
我也将对任何具有.htaccess经验的人分享一个等效示例感到满意,因为我可以将其转换为IIS。
因此,从本质上讲,我的web.config规则需要完成两件事:1.仅适用于/ detail目录。2.需要提取文件名的最后一部分(始终为数字)
我想出的是Followign,但这会导致站点上其他所有URL出现问题,除了/ detail目录中的URL之外。
<rule name="Redirect to detail" stopProcessing="true">
<match url="([^-]+)\/?$" ignoreCase="false" />
<action type="Rewrite" url="/detail/?npid={R:1}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
您的规则应如下所示:
<rule name="Redirect to detail" stopProcessing="true">
<match url="^detail/.*-(\d+).php$" ignoreCase="false" />
<action type="Rewrite" url="/detail/?npid={R:1}" appendQueryString="false"/>
</rule>
Regexp ^detail/.*-(\\d+).php$
将与所有URL匹配,例如http://www.mywebsite.com/detail/name-of-my-product-XXXXXXXX.php
,并将它们重写为/detail/?npid=XXXXXXXX
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.