Итак, у меня есть следующий RegEx ..
RewriteRule ^([-a-z0-9]*[A-Z\.]+.*)$ file.php?string=$1 [QSA]
URL-адрес, для которого нужно активировать file.php
, должен содержать заглавные буквы или точку, а затем отправить URL-адрес сценарию PHP.
Однако проблема, с которой я столкнулся, заключается в том, что этот сценарий запускается на любом URL-адресе из-за не совсем экранированного периода.
Я пытался избежать периода с помощью обратной косой черты, или двух обратных косых черт, или трех ... но ни один из них не останавливает общую интерпретацию.
Что я делаю не так?
Редактировать: Например,
RewriteRule ^([-a-z0-9]*[A-Z\\.]+[-a-z0-9\/]*)$ file.php?string=$1 [QSA]
не работает, но
RewriteRule ^([-a-z0-9]*\\.+[-a-z0-9\/]*)$ file.php?string=$1 [QSA]
избегает его.
Редактировать 2: Примеры URL-адресов, которые я хочу перенаправить:
- / некоторые-страницы идут-here.html
- / Херес-Robs / Старый / Страница /
И те, которые я не:
- / тестирование / один / два /
- / / фактического file.gif
РЕДАКТИРОВАТЬ 3: Старое регулярное выражение было:
RewriteRule ^([-a-z0-9]*[A-Z\.]+[-a-z0-9\/]*)$ file.php?string=$1 [QSA]
Но во время написания поста я обновил регулярное выражение вопроса до того, что вы видите выше.