2014-08-29 20 views
0

У меня уже есть htaccess, работающий для перенаправления пробелов %20 с + символами в строке запроса. Тогда у меня есть другое правило перенаправления из одного каталога в другой.htaccess перенаправить строку запроса url в другой параметр строки

пример:

http://Mysite/domestic-jobs/?domestic=val or otherVal

будет перенаправлен на

http://Mysite/jobs/?domestic=val+or+otherVal

Теперь мне нужно еще одно правило, чтобы включить в свой файл Htaccess, который перенаправляет параметр строки запроса после ? из ?domestic= до ?position=. Как я могу это сделать, не прерывая другие правила в файле?

пример:

http:/Mysite/domestic-jobs/?domestic=val or otherVal

Мне нужно быть перенаправлен на

http:/site/jobs/?position=val+or+otherVal

Вот то, что я до сих пор.

Options +SymLinksIfOwnerMatch 
RewriteEngine on 
RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$ 
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE] 

RewriteRule ^domestic-jobs/(.*)$ /jobs/$1 [R=301,NC,L] 
+0

ответ Джон Лин работал. Просто пришлось добавить Cond и Rule после моего первого Cond и правила, которое уже существует в моем htaccess файле. В противном случае он не перенаправлялся должным образом. – Mike

ответ

1

Под RewriteEngine On просто добавить:

RewriteCond %{QUERY_STRING} ^domestic=(.*)$ 
RewriteRule ^(.*)$ /$1?position=%1 [L,R=301] 
+0

спасибо. что, если у меня больше, чем просто? domestic =. скажем, у меня есть blah = и? blahblah = и? blahblahblah = и хочу изменить все на? position =. Есть ли дикая карта или что-то, что я могу использовать, что изменит что-нибудь после? использовать? position = if? position = еще не после? – Mike

+0

Измените 'internal =' на '[^ =] + =' –

+0

hmmm, это вызвало бесконечный цикл. Он должен перенаправлять, если не '? Position ='. – Mike

Смежные вопросы