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