Как переслать один URL на другой, используя правила mod_rewrite - PullRequest
0 голосов
/ 22 января 2010

Я пытаюсь переслать этот URL, но он не работает - вот мой код:

RewriteRule ^https://www.wsjwine.com/discovery_offer.aspx?promo=2227006$ https://www.wsjwine.com/discovery_offer_lp2.aspx?promo=2227006 [L]

Ответы [ 2 ]

0 голосов
/ 22 января 2010

С директивой RewriteRule вы можете проверить только URL-путь . Для дальнейших тестов вам необходимо использовать дополнительные директивы RewriteCond .

Теперь, если вы хотите переписать каждый запрос / discovery_offer.aspx на / discovery_offer_lp2.aspx независимо от того, как выглядит запрос, вы можете просто использовать его (например, для Файл .htaccess в корневом каталоге):

RewriteRule ^discovery_offer\.aspx$ discovery_offer_lp2.aspx [L]

Если в подстановке не указан запрос, первоначально запрошенный запрос автоматически добавляется к новому.

И если вы просто хотите переписать этот конкретный URL, попробуйте следующее:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} =www.wsjwine.com
RewriteCond %{QUERY_STRING} =promo=2227006
RewriteRule ^discovery_offer\.aspx$ discovery_offer_lp2.aspx [L]
0 голосов
/ 22 января 2010

Вы не можете обнаружить подобные строки запроса. Используйте RewriteCond %{QUERY_STRING}.

...