Мне пришлось добавить правило в файл .htaccess существующего сайта, которое перенаправляет некоторые старые URL-адреса изображений на новые. Итак, сразу после
RewriteEngine On
Я добавил свое новое правило:
RewriteRule ^images/photos/(.+) /media/projects/$1 [L]
Локально и на dev сервере - все нормально. Но когда развернул на живом сайте - не работает :( ...
Локально я использую OpenSUSE, сервер разработки находится на сервере Ubuntu, а рабочий сервер - FreeBSD. Я запустил phpinfo (), и он показал, что на живом сервере (общий хостинг) у меня есть mod_rewrite, поэтому я не знаю, в чем может быть проблема. Пытался добавить некоторые «Параметры» в файл .htaccess, попробовал установить флаг для перенаправления в конце нового правила ... но ничего не изменилось.
Все остальные правила работают. Когда я что-то ломаю в файле .htaccess - это выдает «Внутренняя ошибка сервера», а если я пишу «Запретить от всех» - выдает мне «Запрещено» - как и должно.
Вы можете помочь мне? ... Заранее спасибо :)
На другом форуме получил несколько советов и попробовал:
RewriteRule ^images/photos/(.+) /media/projects/$1 [L]
RewriteRule ^/images/photos/(.+) /media/projects/$1 [L]
RewriteRule ^/?images/photos/(.+) /media/projects/$1 [L]
но ничего из этого не сработало :( ...
Ну и после некоторых экспериментов проделал - разобрался, в чем проблема :) ...
Структура приложения такова:
/ - root
|- application
|- public
| |- css,images, etc ...
| \- .htaccess
\- .htaccess
Итак, виртуальные хосты - локальные и на dev - указывают на «корень», в то время как на действующем сайте домен указывает на «общедоступную» папку. Итак, когда я поместил правила в "общедоступный" файл .htaccess - тогда все заработало на живом сайте. (И что меня сбивало с толку, так это то, что когда я ломаю "корневой" файл .htaccess - живой сайт выдает ошибку 500 ... и поэтому я подумал, что "корневой" файл .htaccess - это тот, который я должен использовать .. .)