Как пропустить совпадения из регулярного выражения htaccess - PullRequest
0 голосов
/ 07 марта 2011
RewriteEngine On
RewriteBase /
RewriteRule ^sample-([a-z][a-z]).php /state.php?m=$1
RewriteRule ^sample-([a-z^-]+).php /city.php?m=$1

У меня есть два регулярных выражения в моем файле htaccess, которые ищут состояние (два алфавитных символа, например «sample-tx.php») и город (например, любая сумма буквенных символов и тире »sample-new-bedford.php ").

Эти выражения прекрасно работают сейчас, но мне нужна помощь с двумя вещами:

  1. Для выражения состояния, как быЯ опускаю "az" и "tx", поэтому, когда кто-то идет в "sample-az.php" или "sample-tx.php", они не перенаправляются?

  2. Тот же вопрос, что и# 1, кроме этого времени для городов.Как бы я пропустил «Хьюстон» и «Нью-Бедфорд», чтобы при переходе к «sample-houston.php» или «sample-new-bedford.php» они не перенаправлялись?

1 Ответ

0 голосов
/ 07 марта 2011

Для этого можно использовать (?!...) отрицательные утверждения .

RewriteRule ^sample-(?!az|tx)([a-z][a-z]).php /state.php?m=$1

Напишите их непосредственно перед группой соответствия символов. Это будет работать одинаково для городов.

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