Переадресация?с помощью htaccess - PullRequest
1 голос
/ 12 октября 2011

Я пытаюсь перенаправить «somepage? Open = support» на «support», я сделал это:

RewriteCond% {QUERY_STRING} ^ open = support $

RewriteRule (. *) / Поддержка? [R = 301, L]

Но это работает только в некоторых случаях, например: "site.php? 1 = 2? Open = support", но не для "? 1 = 2? Open = support".

Я хочу, чтобы это работало на все случаи жизни.

Ценю любые советы по этому вопросу.

1 Ответ

0 голосов
/ 12 октября 2011

Помещая ^ и $ в RewriteCond, вы фактически говорите, что строка запроса должна равняться open=support.Но звучит так, как вы хотите содержит open=support.Так что-то вроде

RewriteCond %{QUERY_STRING} ^(|.*\&)open=support(|\&.*)$

Примечание: я не получаю двойные ? в ваших примерах, поэтому игнорирую их.Но если вы разрешаете ? выступать в качестве разделителя в строке запроса, например &, то, возможно,

RewriteCond %{QUERY_STRING} ^(|.*[\?\&])open=support(|[\?\&].*)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...