Regex работает в тестовой программе, но не в .htaccess - PullRequest
1 голос
/ 20 октября 2010

Я пытаюсь перенаправить URL, который выглядит как

'accommodation/destination.php?code=108459&destination=Yang+Chum+Noi'

Регулярное выражение, которое я использую:

(^accommodation/destination\.php\?code=([0-9]+)&destination=([^/]+)$)

... отлично работает в моем тестере регулярных выражений, но когда я использую его в файле .htaccess, он не работает.

Я что-то здесь упускаю?

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

^ Accommodation / destination.php \? Code = ([0-9] +) & destination = ([^ /] +) $

Протестировано на моем сервере, оно должно работать.

Нет, нет, это никогда не должно работать.Так что вот что будет работать, хотя:

RewriteCond %{QUERY_STRING} ^code=([0-9]+)&destination=([^/]+)$
RewriteRule ^accomodation/destination\.php$ your.php [L]
2 голосов
/ 20 октября 2010

Готово, с помощью MatTheCat и bazmegakapa я заставил его работать, решение {QUERY_STRING} было в порядке после того, как я исправил свою собственную опечатку и после удаления флага QSA, используя решение здесь http://www.google.com/support/forum/p/Webmasters/thread?tid=55432a1ab73cdf5a&hl=enсейчас работает, еще раз спасибо вам обоим за помощь.

2 голосов
/ 20 октября 2010

Вам не нужно избегать косых черт, но главное. А RewriteRule не заботится о символах после точки опроса, поэтому вы должны использовать флаг QSA.

Но это перенаправление кажется странным, как вы используете это регулярное выражение в своем htaccess ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...