Как Вы перенаправляете URL со строкой запроса к другому хосту?

это будет работать ${path%/*/*}, но работы от спины до передней стороны. вот хорошее практическое руководство для прерывания строк в ударе.

5
задан 13 June 2011 в 20:46
2 ответа

Это перенаправит ВСЕ запросы от myhost.com до alt.myhost.com

RewriteCond %{HTTP_HOST} !^alt\.myhost\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE]

Код взят из официального mod_rewrite руководства

Если по любой причине строка запроса не, сохраняются, замените последнюю строку

RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE,QSA]

ОБНОВЛЕНИЕ: Это перенаправит Ваш определенный URL к другому домену:

RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} ^(p=1&preview=true)
RewriteRule ^$ http://alt.myhost.com/?%1 [R=301,L]
9
ответ дан 3 December 2019 в 00:57

Из-за строки запроса «p = ([0-9] +) & preview = true» я полагаю, что ваша потребность в перенаправлении связана с тем, что администратор wordpress находится на поддомене, а веб-сайт - на ваш основной домен.

Из-за этого вы не можете предварительно просматривать черновики.

Я придумал более широкое решение, которое также работает с настраиваемыми типами сообщений и плагинами, которые добавляют параметры:

RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} (preview=true)
RewriteRule ^$ http://alt.myhost.com/?%{QUERY_STRING} [R=301,L]

На простом английском языке, когда "preview = true "обнаружено в запросе, перенаправление происходит на поддомен alt, и полный запрос сохраняется.

7
ответ дан 3 December 2019 в 00:57

Теги

Похожие вопросы