Перенаправление URL Htaccess путем сопоставления строки URL и параметров - PullRequest
0 голосов
/ 05 сентября 2011

Мне нужно соответствовать формату URL и в зависимости от совпадения URL необходимо перенаправить входящие запросы на разные страницы.

Например

http://www.domain.com/path1/path2/ неправильный URL-адрес -1 / ? Var1 = val1
http://www.domain.com/path1/path2/ другой-неправильный URL-адрес -1 / ? Var1 = val1
http://www.domain.com/path1/path2/ третий неправильный URL-адрес -1 / ? Var1 = val1
http://www.domain.com/path1/path2/ четвертый неверный URL-адрес -1 / ? Var1 = val1

См. Совпадения с выделенными URL-адресами. Он всегда имеет -1 в качестве строки URL. . Это нужно перенаправить на одну статическую страницу.

И некоторые другие URL всегда имеют var1 в качестве параметра URL Query String. Таким образом, если URL имеет var1 в качестве строки запроса, эти URL должны быть перенаправлены на другую статическую страницу.

Так что я попробовал это, но не сработало. Пожалуйста, помогите мне в этом сценарии перенаправления

  RewriteEngine on
  RewriteRule ^(path1/path2/[^-1]*)$ http://www.domain.com/target-page [L,R=301]

1 Ответ

1 голос
/ 05 сентября 2011

1.Правило для URL, которое заканчивается на -1/:

RewriteRule ^path1/path2/([^/]+)-1/$ http://www.domain.com/target-page [L,R=301]

2.Правило для параметра var1= в строке запроса:

RewriteCond %{QUERY_STRING} (^|&)var1=([^&]*)(&|$)
RewriteRule .* http://www.domain.com/another-target-page [L,R=301]

ПРИМЕЧАНИЕ: С этими правилами существующая строка запроса также будет передана на новый URL (например, /path1/path2/wrong-url-1/?say=meowhttp://www.domain.com/target-page?say=meow).Чтобы удалить его, добавьте ? в конце целевого URL (например, http://www.domain.com/another-target-page? [L,R=301]

...