@GetDir

Как правильно настроить перенаправление запроса в .htaccess?

Всем доброго времени суток!
Пожалуйста, помогите разобраться с .htaccess

Есть корень сайта. В нём лежит файл .htaccess, который должен перенаправлять все запросы в папку /public.
Вот его содержимое:

<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteRule ^(.*)/$ /$1 [L,R=301]
	RewriteRule ^(.*)$ public/$1 [L]
</IfModule>


В папке /public лежит второй файл .htaccess, который перенаправляет все запросы на index.php в этой же папке:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>


Всё работает как надо, кроме одного: при обращении к папке /public/images (по запросу в браузере sitename.ru/images) меняется URL на sitename.ru/public/images и вылезает сообщение "Forbidden".
Всё так и должно быть, кроме папки public в URL.
Пожалуйста, подскажите как её убрать

Спасибо
  • Вопрос задан
  • 1594 просмотра
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
думаю это очевидно
я так понимаю вы напилили там свое чпу
А следоватлеьно и законы те же самые
RewriteCond %{REQUEST_FILENAME} !-f
если вам нужно исключиьть все директории
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/$1 [L]

ну или более детально указать директорию с отрицанием "!"
RewriteCond %{REQUEST_URI} !^/images/.*
RewriteRule ^(.*)$ public/$1 [L]

ну или по маске к статическому контенту в этой папке, тут уже ваше желание
!^/images/+*\.(Jpg|jpeg|png|PNG)
и так далее...

RewriteCond - по сути это ЕСЛИ
их может быть сколько угодно, после них идет рул это ТО
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы