mod_rewrite .htaccess перенаправить часть строки запроса - PullRequest
0 голосов
/ 09 ноября 2010

Я борюсь с проблемой перенаправления. Мне нужно перенаправить следующий URL с помощью mod_rewrite тщательно .htaccess

http://www.mysite.com/somescript.php?&lang=php&var=1&var=2

до следующего

http://www.mysite.com/somescript.php?lang=php&var=1&var=2

Итак, в основном мне просто нужно удалить

&

до

lang=php

Однако порядок важен. Иногда

&lang=php

появляется после других переменных в строке запроса. в этом случае мне нужен

&

остаться частью

&lang=php

Возможно ли это?

Подводя итог, если & lang = php появляется в начале строки запроса, удалите &. Если & lang = php появляется где-либо еще в строке запроса, символ & должен остаться.

Надеюсь, это понятно!

Я бы сам изменил сценарий, но, к сожалению, я не разработчик, и в данный момент он не кажется мне слишком полезным; это быстрое решение.

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Я бы заменил ?& на ?:

RewriteCond %{QUERY_STRING} ^\&(.*)$
RewriteRule ^somescript\.php$ /somescript.php?%1 [L,R=301]
1 голос
/ 09 ноября 2010

почему бы вам не сопоставить "?&" и заменить его на "?"?

Что-то вроде:

RewriteRule ^(.*)?&(.*) $1?$2 [L]

(не проверено)

Потому что ядумаю, что комбинация "?&" никогда не действительна ... (?)

...