Используя htaccess, проверьте несколько каталогов для запроса, прежде чем выбросить 404 - PullRequest
0 голосов
/ 19 января 2011

У меня есть папка, заполненная устаревшими файлами, которую нужно перенести во время редизайна сайта, но я бы хотел сохранить их в отдельной папке, которая называется legacy.Если приходит запрос на старый URL, такой как

/old-project/foo.html

, но он не найден, я бы хотел, чтобы сервер проверил устаревшую папку

/legacy/old-project/foo.html

и обработал ее.что до броска 404. Мысли?

1 Ответ

0 голосов
/ 19 января 2011

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Google это больше.Об этом часто спрашивают.

Учебное пособие для начинающих: http://www.elated.com/articles/mod-rewrite-tutorial-for-absolute-beginners/

Дополнительная информация: http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html

Если этого недостаточно:

RewriteEngine On
RewriteRule ^/old-project/(.*)$ /legacy/old-project/$1

Обновление, согласно пояснениям в комментарии:

Этот набор правил должен хорошо работать.Он только перенаправляет запросы, которые не относятся к существующим файлам, символическим ссылкам или каталогам (для индексации).

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^/old-project/(.*)$ /legacy/old-project/$1 [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...