htaccess — добавить строку в конечный URL

URL-адрес похож на

http://www.example.com/?p=3733&preview=true

и я хочу добавить ?ModPagespeed=noscript

так что становится http://www.example.com/?p=3733&preview=true?ModPagespeed=off

p= является динамическим кстати

Любые идеи?


person WendiT    schedule 18.12.2013    source источник


Ответы (1)


поместите этот код в свой файл DOCUMENT_ROOT/.htaccess:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)p=[^&]+
RewriteCond %{QUERY_STRING} (^|&)preview=true(&|$)
RewriteCond %{QUERY_STRING} !(^|&)ModPagespeed=off(&|$)
RewriteRule ^$ %{REQUEST_URI}?ModPagespeed=off [L,QSA,R]

ОБНОВЛЕНИЕ. Если вам нужен конечный URL с двумя ?, используйте это правило:

RewriteCond %{QUERY_STRING} (^|&)p=[^&]+
RewriteCond %{QUERY_STRING} (^|&)preview=true(&|$)
RewriteCond %{QUERY_STRING} !(^|&)ModPagespeed=off(&|$)
RewriteRule ^$ %{REQUEST_URI}?%{QUERY_STRING}?ModPagespeed=off [L,NE,R]
person anubhava    schedule 18.12.2013
comment
Почти. URL-адрес получился следующим: example.com/?ModPagespeed=off&p=3736&preview=true< /а> - person WendiT; 18.12.2013
comment
Это не правильный URL? То, что вы дали в своем примере, было неправильным URI, потому что ? появляется дважды. - person anubhava; 18.12.2013
comment
URL-адрес действительно правильный с обоими? в этом. Уже пробовал. Это из Google PageSpeed. - person WendiT; 18.12.2013
comment
Итак, вы хотите 2 ? в конечном URL? - person anubhava; 18.12.2013
comment
Еще нет, но я сделал небольшую ошибку. URL-адрес должен быть example.com/?p=3733&preview=true?ModPagespeed= носкрипт. В текущем примере это не работает - person WendiT; 18.12.2013
comment
Он по-прежнему заканчивается так, а не в конце: example.com/? ModPagespeed=noscript?p=3740&preview=true - person WendiT; 18.12.2013
comment
ok откатил мое изменение в разделе UPDATE. В моем тестировании окончательный URI становится /?p=3733&preview=true?ModPagespeed=off точно таким же, как ваш вопрос. - person anubhava; 18.12.2013
comment
Хорошо спасибо. Я собираюсь протестировать его позже. нужно идти. Спасибо за все время, которое вы потратили на это. - person WendiT; 18.12.2013