我試圖讓這個使用ISAPI重寫(mod_rewrite的)相匹配的正則表達式:正則表達式重寫的aspx IID =
www.website.com/product.aspx?iid=201
我已經試過:
^(.*)/product.aspx?iid=201
而且:
^(.*)/product\.aspx\?iid=201
這兩個表達式似乎都不符合它。
我試圖讓這個使用ISAPI重寫(mod_rewrite的)相匹配的正則表達式:正則表達式重寫的aspx IID =
www.website.com/product.aspx?iid=201
我已經試過:
^(.*)/product.aspx?iid=201
而且:
^(.*)/product\.aspx\?iid=201
這兩個表達式似乎都不符合它。
下面的規則將重定向(301)從domain.com/product.aspx?iid=201
到domain.com/product/productname
RewriteEngine On
RewriteBase/
RewriteCond %{QUERY_STRING} ^iid=201 [NC]
RewriteRule ^product\.aspx$ /product/productname [NC,R=301,L]
你要記住 - Apache的mod_rewrite,赫利的ISAPI_Rewrite V3,IIS 7.x的 - 的RewriteRule
指令(或在IIS中等效)只能與URL的「路徑」部分一起使用。如果您需要使用域名,協議,服務器端口,查詢字符串等 - 您必須使用RewriteCond
。
上述規則完全可行 - 我自己的一臺服務器上有Helicon ISAPI_Rewrite v3(IIS6,否則它將是IIS7和標準的URL重寫模塊)。
如果您有任何問題 - 請詢問,但最有可能我會在幾個小時內做出響應 - 這是凌晨3點在這裏:)
^(.*)/product.aspx\?iid=201
在這裏工作:
http://www.regexplanet.com/simple/index.html
因此,我希望這個項目在IIS中也
工作,如果你是使用Java,你會逃避你的第二個解決方案是這樣的:
"^(.*)/product\\.aspx\\?iid=201"
也許IIS喜歡那種逃避風格(canno Ť這裏測試)
高興地看到你更新了201-值,即困惑我:-) –
這本來是一個簡單的修復:),但它只是一個錯字。 – JMC
第二個RE看起來對我很正確;它怎麼不適合你? –