Как переписать часть пути, не влияя на другие записи в похожих путях? - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь создать ряд переписываний в аналогичной структуре пути.Мне нужен определенный путь с символами, которые предпринимаются после записи пути обратно в его корневой путь, как показано ниже.Это включает /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/.Меня беспокоит то, что мне нужно будет написать условия для каждого отдельного случая матча.Я пытаюсь найти более простое решение.Спасибо!

...