Запретить все файлы, кроме индекса, используя apache - PullRequest
2 голосов
/ 31 октября 2011

Вот мой .htaccess

<Files *>
  Order Deny,Allow
  Deny from all
</Files>

<Files index.php>
  Order Deny,Allow
  Allow from all
</Files>

Это не работает, потому что, если я набираю имя хоста в моем браузере, он обслуживает index.php, но apache, похоже, непримените инструкции к файлам и вместо этого верните страницу с недопустимым доступом к файлу, мне нужно набрать полное имя документа (например, «index.php»), чтобы оно заработало.что не очень удобно ...

как действовать, если я хочу, чтобы пользователи имели доступ только к индексным файлам каждой папки на моем веб-сайте?все остальные файлы - только включения скриптов, поэтому я считаю, что я делаю все правильно, пытаясь сделать их недоступными из Интернета (или, возможно, нет, если только у вас есть одна причина доказать другой случай).

Независимо отвопрос выше, это правильный способ сделать работу?(Я думаю, что две директивы здесь не аккуратны, но это единственный способ, ну, почти единственный известный мне способ избежать доступа к файлам).

Ответы [ 2 ]

1 голос
/ 31 октября 2011

Не совсем точно, зачем вам это нужно, но вы можете использовать mod_setenvif (не нужно оборачивать это внутри <Files>)

SetEnvIf Request_URI ^/index.php$ index
Order Allow,Deny
Allow from env=index

Это вызовет доступ к hostname.com/ для 403, но разрешит hostname.com/index.php. Если вы хотите разрешить / также, просто добавьте

SetEnvIf Request_URI ^/$ index

наверх. Конечно, все это сделает так, что все, на что ссылается index.php, также возвращает 403.

0 голосов
/ 29 марта 2015
<Files *?>
    Order deny,allow
    Deny from all
</Files>

Вам просто нужно добавить знак вопроса, чтобы соответствовать хотя бы одному символу.

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