[英]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.