htaccess Переписать правило добавления параметров строки запроса - PullRequest
0 голосов
/ 12 октября 2011

Я пытаюсь написать правило перезаписи для следующих URL: redirect

  • www.domain.com/mbc-ex до www.domain.com
  • www.domain.com/mbc-ex?abcd=123 до www.domain.com

По сути, я не хочу иметь какие-либо параметры строки запроса после перенаправления. Вот правило, которое я попробовал

^/mbc-ex\?(.*)$  http://www.domain.com [NC,L,U]

вышеприведенное правило все еще добавляет параметры строки запроса

^/mbc-ex$ http://www.domain.com [NC,L,U]

этот работает как положено

Ответы [ 2 ]

0 голосов
/ 19 февраля 2014

Вам нужен флаг QSD | qsdiscard

^/mbc-ex  http://www.domain.com [NC,L,U,QSD]

С apache2 2.4.0

Пред 2.4.0: Добавить? до конца вас новый URL

^/mbc-ex  http://www.domain.com? [NC,L,U]
0 голосов
/ 12 октября 2011

Может показаться, что ваше регулярное выражение совсем не соответствует.

^/mbc-ex\?(.*)$ http://www.domain.com  [NC,L,U]

В соответствии с примерами на http://httpd.apache.org/docs/2.0/misc/rewriteguide.html, вам не нужно использовать обратную косую черту на вопросительном знаке.

Вот удобный инструмент онлайн-тестирования для проверки ваших правил:http://martinmelin.se/rewrite-rule-tester/

Используя это, я смог заставить ваш URL работать правильно, используя следующее правило:

RewriteRule ^mbc-ex/?(.*) http://www.domain.com [NC,L,U]
...