簡體   English   中英

IIS重寫規則以獲取破折號分隔文件名的最后一部分

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM