Вопрос по mod_rewrite.

Белый Ум
На сайте с 27.04.2009
Offline
240
367

Задача такая - есть папка на сайте, контент переехал в подпапку этой папки. нужно сделать относительную(т.е. чтобы не нужно было явно прописывать путь к папке, и достаточно было-бы прописать относительный путь от папки old к new) переадресацию внутри этой папки.

Я уже перепробовал тысячу разных способов, но самый простой код(в файле /old/.htaccess):


RewriteEngine on
RewriteCond $1 !(^new/.*)
RewriteRule ^(.*)$ new/$1 [L]

работает только локально(на XAMPP)....

При переносе на сервер он не работает: выбивает ошибку

The requested URL /home/user/data/www/site.ru/old/new/i.jpg was not found on this server.

На сервере работает только такой код(приходиться явно переписывать RewriteBase):

RewriteEngine on 
RewriteBase /old/
RewriteCond $1 !(^new/.*)
RewriteRule ^(.*)$ new/$1 [L]

Почему так происходит, ведь в документации ясно сказано

префикс локального каталога отбрасывается на этом этапе обработки и ваши правила преобразований работают только в оставшейся части. В конце он автоматически добавляется обратно к пути.

Еще раз сформулирую вопрос: почему локально и на сервере обработка Rewrite отличается, и что писать в /old/.htaccess , чтобы выполнить такой Rewrite, почему префикс локального каталога не добавляется обратно к пути?

Спасибо.

Skype: shum_beliy

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий