mod_rewrite перенаправления per-dir возвращая 400 - PullRequest
0 голосов
/ 29 декабря 2010

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

Я попробовал это, и это работает:

RewriteCond %{REQUEST_URI} old_dir/.+\.(jpg|png|gif)$

RewriteRule old_dir/(.+[^/]+\..+)$ $1 [L,PT]

Но так как они постоянно перемещаются, я хочу сделать правильное перенаправление, поэтому я добавил флаг [R], например:

RewriteCond %{REQUEST_URI} old_dir/.+\.(jpg|png|gif)$

RewriteRule old_dir/(.+[^/]+\..+)$ $1 [L,PT,R]

Но сервер запутывается и возвращает 400, поэтому я посмотрел файл журнала, и вот что происходит:

strip per-dir prefix: C:/wamp/www/natrazyle/old_dir/images/banner.jpg -> old_dir/images/banner.jpg

applying pattern 'old_dir/(.+[^/]+\..+)$' to uri 'old_dir/images/banner.jpg'

rewrite 'old_dir/images/banner.jpg' -> 'images/banner.jpg'

add per-dir prefix: images/banner.jpg -> C:/wamp/www/natrazyle/images/banner.jpg

explicitly forcing redirect with http://localhost/C:/wamp/www/natrazyle/images/banner.jpg

Как видите, полный локальный путь добавляется после localhost

Я знаю, что делаю что-то не так, я просто не могу понять это сам. Любая помощь будет принята с благодарностью ...

1 Ответ

0 голосов
/ 30 декабря 2010

Используйте абсолютный путь URL в вашей замене:

RewriteRule ^old_dir/(.+\.(jpg|png|gif))$ /$1 [L,R]
...