Как добавить исключения в правило перенаправления .htaccess - PullRequest
0 голосов
/ 02 июля 2018

Я абсолютно не знаю языка Apache .htaccess и, честно говоря, в настоящее время у меня нет времени на его изучение.

Я разделил свой сайт на следующие каталоги:

/My-Website
  /admin
  /public

Мне кажется хорошей практикой отделить портал администрирования от общедоступного веб-сайта отличительными папками. Администратор - это то, где администрация обновляет содержимое, а общедоступная, ну, в общем, публичная.

Однако, таким образом, я сталкиваюсь с двумя ключевыми проблемами:

  1. Я каким-то образом настроил .htaccess для перенаправления всех URL-адресов в каталог /public. Но я хочу сделать исключение для каталога /admin. Это означает, что когда пользователь вводит mywebsite.com, он должен перенаправлять на /public автоматически, но не тогда, когда пользователь вводит mywebsite.com/admin. Я не уверен, что .htaccess будет иметь решение или PHP, но я рад обоим.
  2. В моем каталоге администратора у меня есть файлы JS и другие xml, лежащие в каталоге администратора. Сделал тест, обнаружил, что пользователи могут получить доступ ко всем файлам в директории администратора, явно перейдя, например, к: mywebsite.com/admin/may_be_sensitive.xml без авторизации. Как я могу заняться этим?

Я вполне открыт для предложений, даже если это означает, что мне нужно реорганизовать весь мой сайт в другую структуру.

1 Ответ

0 голосов
/ 02 июля 2018

Перенаправление не требуется.

/ public должен быть корнем, поэтому публичная часть вашего сайта будет видна в https://example.com

/ admin должен быть подкаталогом из общедоступного (вашего webroot) типа https://example.com/admin, и должен быть защищен с помощью соответствующего процесса аутентификации, такого как базовая аутентификация, одноразовый токен или какой-либо другой вид безопасной аутентификации.

Возможно защитить папку администратора с помощью файла .htaccess, но это более безопасно сделать в файле конфигурации сервера, если у вас есть доступ к нему.

От: http://httpd.apache.org/docs/current/howto/auth.html

<Directory "/usr/local/apache/htdocs/secret"> 
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile "/usr/local/apache/passwd/passwords"
</Directory>

Файл паролей создается с помощью утилиты htpasswd.

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