我的一行代碼使用了mod_rewrite拉起從數據庫的結果,例如:mod_rewrite的規則herierarchy
example.com/anytext/itemid
使用以下網址:example.com/item.php?id=itemid
一個簡單的重寫。不過,我想制定一個優於它的規則。下面我們來看看我的意思:
.htaccess文件例如:
RewriteRule ^products/[^/]+/(.*)$ products/item.php?id=$1 [L]
這個規則告訴example.com/products/anytext/itemid
使用item.php
使用URL的最後部分的「/」後,這是該項目的ID來顯示。
但是,我想要一些URL重定向而不是重寫。例如:
products/green-dress/4023
成爲:
products/green-dress-with-stain/4023
無需重寫規則中踢!
現在,我已經在.htaccess中嘗試了一個簡單的301重定向,但它以某種方式干涉了重寫規則。
而不是去
products/green-dress-with-stain/4023
不言而喻:
products/green-dress-with-stain4023?id=4023
見末尾的URL如何得到一個變量?奇怪的!
謝謝, 戴夫
Mod_alias(例如'Redirect'和'RedirectMatch'指令)優先於mod_rewrite。您可以使用它們來確保在.htaccess文件中首先解析並執行它們。文件內的位置是不相關的。 –
當我做「重定向301 /綠色禮服/ 4052 /綠色禮服與污點/ 4052」的URL變成:example.com/green-dress-with-stain/4052?id=4052「...我不明白爲什麼它在最後添加ID變量......怪異的! –
@faa我的猜測是因爲重寫規則干擾了重定向規則... –