Проблемы правил переписывания Apache - PullRequest
0 голосов
/ 06 января 2010

У меня есть список папок в htdocs , которые я хочу включить в мой файл конфигурации Apache, но я не хочу включать каждый каталог, который там находится вручную, так как другие могут быть добавлены позже.

У меня 5 или около того папок, перенаправляющих правильно, еще одно перенаправление, которое делает для старого index.htm в папке htdoc , и еще одно, которое делает для веб-сервера 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]

Как бы я позаботился о том, чтобы каждая папка в htdocs была перенаправлена, / olddesign отправлялась в нужное место и не входила в каталог (например, как при вводе http://localhost/) будет направлять на веб-сервер cherrypy?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 06 января 2010

Попробуйте эти правила:

RewriteRule ^/olddesign(.*) /$1 [nc,l]
RewriteCond $0 =/ [OR]
RewriteCond %{DOCUMENT_ROOT}$0 !-d
RewriteRule ^/[^/]* http://127.0.0.1:8080%{REQUEST_URI} [proxy]

Последнее правило будет применяться только в том случае, если запрошенный путь URL-адреса просто / или первый сегмент пути не может быть сопоставлен с существующим каталогом.

...