Проблемы с правилами перезаписи Apache
-
18-09-2019 - |
Вопрос
У меня есть список папок в хтдокументы который я хочу включить в свой файл конфигурации Apache, но я не хочу вручную включать каждый существующий каталог, так как позже могут быть добавлены новые.
У меня около 5 папок перенаправляются правильно, еще одно перенаправление на старую index.htm в хтдокпапка и еще одна, которая относится к имеющемуся у меня веб-серверу Cherrypy.Это моя конфигурация:
RewriteRule ^/static/(.*) /static/$1 [nc,l]
RewriteRule ^/brands/(.*) /brands/$1 [nc,l]
RewriteRule ^/downloads/(.*) /downloads/$1 [nc,l]
RewriteRule ^/events/(.*) /events/$1 [nc,l]
RewriteRule ^/js/(.*) /js/$1 [nc,l]
RewriteRule ^/olddesign(.*) /$1 [nc,l]
RewriteRule ^/ http://127.0.0.1:8080/$1 [proxy]
Как мне убедиться, что каждая папка в хтдокументы перенаправляется, /olddesign переходит в нужное место и не заходя в каталог (например, так же, как и вводя http://локальный хост/) направит на веб-сервер CherryPy?
Любая помощь будет принята с благодарностью.
Решение
Попробуйте эти правила:
RewriteRule ^/olddesign(.*) /$1 [nc,l]
RewriteCond $0 =/ [OR]
RewriteCond %{DOCUMENT_ROOT}$0 !-d
RewriteRule ^/[^/]* http://127.0.0.1:8080%{REQUEST_URI} [proxy]
Последнее правило будет применяться только в том случае, если запрошенный путь URL-адреса просто /
или если первый сегмент пути невозможно сопоставить с существующим каталогом.