переписывание справки по одному URL - PullRequest
0 голосов
/ 13 марта 2010

Я пытаюсь переписать следующий URL:

index.php?route=checkout/cart

до

/cart

с помощью:

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

Однако, похоже, это не работает. Кто-нибудь знает, что я делаю не так?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Вам необходимо отправить перенаправление, чтобы новый URL отображался в адресной строке браузера. Итак, добавьте R к [L].

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

Если вы хотите, чтобы поисковые роботы игнорировали «уродливый» URL и / или удалили его из индексов и вместо этого использовали новый, отправьте перенаправление 301.

RewriteRule ^index.php?route=checkout/cart$ /basket [R=301,L] 
0 голосов
/ 13 марта 2010

RewriteRule проверяет только URL-путь . Вам нужно 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]
...