2010-03-13 61 views
0

我試圖改寫以下網址:使用重寫單個URL幫助

index.php?route=checkout/cart 

/cart 

RewriteRule ^index.php?route=checkout/cart$ /basket [L] 

但是它似乎並沒有工作。任何人都知道我在做什麼錯了?

感謝

+0

避免顯而易見:'/ cart'或'/ basket'? – BalusC 2010-03-13 14:10:15

回答

0

RewriteRule確實只測試URL path。您需要RewriteCond測試查詢:

RewriteCond %{QUERY_STRING} ^route=checkout/cart$ 
RewriteRule ^index\.php$ /basket [L,R=301] 

附加R=301標誌將導致與狀態代碼301(永久重定向),而不是內部重定向的外部重定向。

如果你想倒過來:

RewriteRule ^basket$ index.php?route=checkout/cart [L] 
0

您需要發送重定向使新的URL得到體現在瀏覽器地址欄中。因此,請將R添加到[L]

RewriteRule ^index.php?route=checkout/cart$ /basket [R,L] 

如果您想那個searchbots應該忽略的「醜陋」的URL和/或從索引中刪除,並使用新的來代替,然後發送一個301重定向。

RewriteRule ^index.php?route=checkout/cart$ /basket [R=301,L]