.htaccess для защиты файлов в подпапках фреймворка на хостинг-сервере. - PullRequest
0 голосов
/ 10 апреля 2019

Я работаю над микро-фреймворком, похожим на Symfony, и htaccess - не мой лучший друг.

Вот проблема, с которой я сталкиваюсь

проект находится в папке public_html, и у меня есть папка pulic с активами сайтов и файлом index.php.

Я хочу скрыть остальную часть проекта из браузера для обеспечения безопасности, чтобы файлы PHP и Vendor были скрыты. Параметры FollowSymLinks MultiViews

Options -Indexes
DirectoryIndex public/index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
RewriteRule ^(.*)/$ /$1 [L,R=301]
# If requested resource is not a file or directory then redirect to /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule . / [NC,L,QSA]

Это беспорядок, который у меня до сих порработает, но я не могу назвать такие ресурсы, как css | js | images, так как URL-адрес перенаправляется в загрузчик фреймворка.Я знаю, что это как-то связано с DirectoryIndex, но я просто не могу заставить этот htaccess правильно работать для этого проекта.

Чего я надеюсь добиться, так это наличия корневого каталога и всех нефайловых URL-адресов (в основном ничего безфактический файл на сервере в каталоге public_html / public) разрешается в путь public / index.php на сервере, но все равно показывает запрошенный URL в адресной строке

Examples:
domain.com
domain.com/path
domain.com/path/path2 etc..

would all use the public/index.php file

, вызывая ресурс domain.com/assets/js/script.js приведет к тому, что этот файл будет доставлен в браузер.

Я также хотел бы поддерживать принудительный https и отсутствие косой черты в URL, если это вообще возможно.

Спасибо всем заранее за любую помощь, которую вы можете оказать с этим.

~ M

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...