Я работаю над микро-фреймворком, похожим на 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