Я пытаюсь сделать несколько вещей с этим файлом .htacess, но не могу
заставить его обслуживать нужные мне изменения, предотвращая несанкционированный доступ к нужным файлам
скрытый. Моя цель - разрешить доступ к любому файлу, расположенному в / section / section_name / webroot / через / section_name /. Таким образом, /admin/images/kittens/cat.jpg будет обслуживать /sections/admin/webroot/images/kittens/cat.jpg, если он существует. Я хочу иметь возможность иметь несколько разделов. Если раздел не указан, но файл существует в / section / default / webroot, то я бы хотел, чтобы его обслуживали. Любой другой запрос должен
перейти к /dispatcher.php. Я думал, что у меня это работает, пока я не запросил конфигурацию
файл в / config и смог его увидеть. Тогда я понял, что могу просмотреть любой файл
если бы я знал этот путь.
Как я могу исправить эту проблему с безопасностью, сохраняя при этом исправления перезаписей?
Вот мой файл .htacess:
Options +FollowSymlinks -MultiViews -Indexes
RewriteEngine On
# If a file is requested in the admin webroot, and it exists, allow it to pass through
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^admin(/.*)$ sections/admin/webroot/$1 [L,QSA]
# if the requested url begins with /customers and it is located in /sections/customers/webroot
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^customers(/.*)$ sections/customers/webroot/$1 [L,QSA]
# if the requested url begins with /resellers and it is located in /sections/resellers/webroot
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^resellers(/.*)$ sections/resellers/webroot/$1 [L,QSA]
# if the requested file does not begin with /admin, /customers, or /resellers, and is in /sections/default/webroot, then serve it
RewriteCond %{DOCUMENT_ROOT}/sections/default/webroot/$1 -f
RewriteRule ^(.*)$ sections/default/webroot/$1 [QSA,L,NC]
# Send everything else to the dispatcher
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ dispatcher.php [QSA,L]