簡體   English   中英

IIS7的URL重寫模塊中的正則表達式

[英]Regular expressions in URL Rewrite Module for IIS7

如果url沒有擴展名,我有以下重寫規則來附加.aspx擴展名。

     <rule name="SimpleRewrite" stopProcessing="true">
         <match url="^(.*(?&lt;=/)([^/.]*))$" />
         <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.

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