2012-06-11 5 views
1

Я пытаюсь сделать очень простое перенаправление. Мы переходим от автономной установки Wordpress к установке Multisite Wordpress, и я пытаюсь заставить перенаправление работать на странице с строками запроса. Вот код, который я до сих пор:.htaccess перенаправляет строку запроса

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
RewriteRule ^advise/index_pt(.*)$ http://domain.com/advise/pennies-to-millions/$1 [NE,L,R=301] 

В принципе, это то, что я хочу: (с или без WWW)

* .domain.com/посоветуйте/index_pt.php (параметры) =>? * .domain.com/advise/pennies-to-million /? (параметры)

Любая помощь приветствуется!

+0

Взгляните на флаг QSA, возможно, это поможет вам – Christopher

ответ

2

Строки запроса не являются частью URI, используемой для соответствия в директиве RewriteRule. Таким образом, вы не можете использовать регулярное выражение для сопоставления с ними внутри RewriteRule. Если вам нужно совпадение с ними, вы можете использовать RewriteCond %{QUERY_STRING} <regex> перед правилом. Тем не менее, строки запросов автоматически добавляются, если вы не создаете никаких новых, используя ? в цель правила. Вы можете удалить все обратные ссылки в правиле и добавить парсеры вокруг www, чтобы сделать их необязательными.

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^advise/index_pt.php$ http://domain.com/advise/pennies-to-millions/ [NE,L,R=301] 
Смежные вопросы