Я пытаюсь создать ряд переписываний в аналогичной структуре пути.Мне нужен определенный путь с символами, которые предпринимаются после записи пути обратно в его корневой путь, как показано ниже.Это включает /foo/bar/test/* to /foo/bar/test
, но также /foo/* to /foo/
(Если запрос сделан для чего-то отличного от /foo/bar
, например /foo/abc
, просто перенаправьте его обратно на /foo
).
Это наLinux-сервер работает под Apache 2.2.Я попытался использовать флаг L, чтобы положить конец совпадению при разборе URL механизма перезаписи, и переместил все включающие правила в конец списка совпадений.
RewriteRule ^/foo/bar/test/(.*) /foo/bar/test/ [R=302,NC,NE,L]
RewriteRule ^/foo/bar/test2/(.*) /foo/bar/test2/ [R=302,NC,NE,L]
RewriteRule ^/foo/bar/test3/(.*) /foo/bar/test3/ [R=302,NC,NE,L]
RewriteRule ^/foo/bar/(.*) /foo/bar/ [R=302,NC,NE,L]
RewriteRule ^/foo/(.*) /foo/ [R=302,NC,NE,L]
I 'При обнаружении перезаписи /foo/(.*)
приоритет совпадает с предыдущими правилами, и каждый запрос переписывается в /foo/
, даже /foo/bar/test/
.Меня беспокоит то, что мне нужно будет написать условия для каждого отдельного случая матча.Я пытаюсь найти более простое решение.Спасибо!