2011-05-04 160 views

回答

3

mod_rewriteRewriteRule的第一個參數中的查詢字符串不匹配。您需要改爲RewriteCond。此外,當在.htaccess中使用重寫規則時,在匹配RewriteRule時,前導/不存在。

RewriteCond %{QUERY_STRING} id=([^&]*) 
RewriteRule ^cat/subcat/$ /cat/subcat/%1 [L,R=301] 

%1是已在RewriteCond

希望幫助相匹配的ID。

+0

我開始寫這樣,但他認爲他的意思是重讀它的另一種方式。否則,我想他是指重定向,而不是重寫。 (另外,最好匹配'%{QUERY_STRING}'來獲得該匹配。) – Orbling 2011-05-04 23:37:37

+0

@Orbling,很好的捕獲,我所得到的是毫無價值的:) – clmarquart 2011-05-04 23:56:59

+0

看看他在另一個答案上發佈的內容, .htaccess',如果它傳遞到將所有內容映射到'index.php'的最終規則,則重寫可能就足夠了,前提是該進程正在對重寫的URL進行所有解釋。必須小心使用正確的變量。一般來說,重定向是一種更好的方法,就像你所擁有的一樣,因爲不正確的URL應該被改變*不被處理*。 – Orbling 2011-05-05 02:09:01