Я пишу правило mod_rewrite и хотел бы, чтобы рука делала то, что я хочу.Регулярное выражение соответствует любому, что не начинается с определенной строки
В основном я хочу следующие случаи работы:
request | Redirect to
---------------------
cheese | /?page=cheese
abc123 | /?page=abc123
abc/def | /?page=abc/def
a/b/c/d | /?page=a/b/c/d
(. Любой буквенно-цифровой плюс -/и _ перенаправлены)
С двух специальных случаях:
request | Redirect to
------------------------
admin | don't redirect
media | don't redirect
С помощью этих двух Я не хочу, чтобы любые вспомогательные каталоги и т. Д. Перенаправляли либо.
Я дошел до:
RewriteRule ^([A-Za-z0-9-_]+)/$ /index.php?page=$1 [L]
Но это только удовлетворяет два верхних испытания.
Любые идеи?
Прохладный - не знал про тире! Кажется, что посещение/admin/не идет на то же место, что и /admin/index.php (он делает без каких-либо правил перезаписи ...) –
Где находится/admin/going? У вас есть index.html и index.php, находящиеся под/admin? Если вы это сделаете, и index.html появится перед индексом.php в директиве конфигурации Apache DirectoryIndex, что может вызвать проблемы. –