объединение двух папок с mod-rewrite в .htaccess - PullRequest
1 голос
/ 13 января 2011

В настоящее время я занимаюсь разработкой веб-сайта на базе Drupal, но мне придется поддерживать устаревшую систему и множество статических страниц / папок.Было бы здорово, если бы я мог хранить старые обломки в отдельной папке, чем новый сайт.Это означало бы, что я должен объединить обе папки на лету.Я думал, что эта структура папок будет отличной.

/htdocs/legacy (symlink to old web root)
/htdocs/index.php
/htdocs/.htaccess
/htdocs/other drupal files and folders 
/htdocs/...

Это будет означать, что при обращении к mydomain.com/xyz.php сервер должен попытаться обработать его в следующем порядке./ htdocs / server это

, если файл или папка в / legacy / обслуживают это, но не переписывают строку местоположения браузера.

Я придумал следующие правила переписывания.Которые, однако, не работают.Я могу либо обслуживать файлы по наследству, либо через drupal.

# 1. server from .htaccess folder

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule  ^(.*)$  -  [NC,L]

# 2. serve from legacy

RewriteCond  /full-path-to-legacy-folder/%{REQUEST_URI}  -f [OR]
RewriteCond  /full-path-to-legacy-folder/%{REQUEST_URI}  -d
RewriteRule  ^(.*)$  /legacy/$1  [NC,L]

# 3. else

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Кто-нибудь из вас предлагал?

Большое спасибо!

1 Ответ

0 голосов
/ 04 февраля 2011

Так как вы просто переписываете URL, и есть другие операции, которые необходимо выполнить с файлом (например, mod_php), попробуйте изменить параметры [L] на [PT], чтобы продолжить обычную обработку запрос.

...