Назад | Перейти на главную страницу

Новое правило для файла .htaccess не работает на живом сайте

Мне пришлось добавить правило в файл .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 - это тот, который я должен использовать .. .)