PyroRed
@PyroRed
php разработчик

Как правильно перенести корневую директорию сайта в публичную поддиректорию?

Здравствуйте.

Во всех этих новомодных фреймворках и статьях "как делать правильно" (например, Create your own PHP Framework) рекомендуют сначала завернуть все запросы на фронт-контроллер, а потом перенести его в отдельную папку (например web или public). Все статические файлы (типа картинок или файлов стилей) тоже хранить там. По соображениям безопасности разрешить клиентам доступ только в эту публичную папку, а ко всему остальному запретить.

Вот только не понятно, как это делать правильно. У меня родился вариант создать в корне сайта .htaccess

RewriteEngine on
RewriteRule ^web/(.*)$ web/$1 [L]
RewriteRule ^(.*)$ web/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ web/index.php


Только я что-то засомневался. Может лучше попросить хостера переписать VirtualHost и изменить корневую директорию сайта сразу в конфиге апача?
  • Вопрос задан
  • 462 просмотра
Решения вопроса 1
@Kostik_1993
Web Developer
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>


А в папке public еще один нужно сделать
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы