В то время как ExpressionEngine предоставляет собственные средства для Ограничение доступа к шаблонам для защищенных паролем страниц и шаблонов & mdash; включая обработку .htaccess Базовая HTTP-аутентификация Apache & mdash; Существуют ситуации, когда вы можете не захотеть или не можете его использовать:
Например, Версия фрилансера ExpressionEngine не включает Модуль управления участниками , поэтому Диспетчер предпочтений шаблона не предлагает Ограничения доступа.
Кроме того, если вы решите использовать HTTP-аутентификацию ExpressionEngine, только пользователи с учетными записями участников [в ExpressionEngine] смогут войти в систему, поскольку EE использует свою локальную базу данных участников для аутентификации.
Если вы работаете самостоятельно, вы можете изменить httpd.conf
, чтобы ограничить и защитить паролем доступ к страницам, записям и шаблонам ExpressionEngine .
Эта техника работает:
- Редактирование Apache
httpd.conf
- Создание
.htpasswd
или .htgroup
файлов
- Указание URL-адресов для защиты
Примечание. Поскольку мы пытаемся сопоставить объекты на уровне URL, а не физическую файловую систему, мы должны использовать директиву <Location>
или <LocationMatch>
1 . * 1047. *
Добавьте в файл httpd.conf
или vhost.conf
вашего сервера следующее:
<LocationMatch "^/private">
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/website/.htpasswd
AuthGroupFile /dev/null
Require valid-user
</LocationMatch>
Обязательно измените значения директивы по своему вкусу и в среде хостинга.
Если вы этого еще не сделали, создайте файл паролей .htpasswd
для шифрования требуемых паролей с помощью командной строки или Online .htaccess Password Generator :
htpasswd -c /path/to/website/.htpasswd username
Если команда htpasswd отсутствует в вашем пути Unix, вам нужно будет ввести полный путь к файлу, чтобы запустить его. На моем сервере это будет:
/usr/sbin/htpasswd -c /path/to/website/.htpasswd username
Затем htpasswd запросит у вас пароль пользователя и попросит ввести его еще раз, чтобы подтвердить:
# htpasswd -c /path/to/website/.htpasswd username
New password: changeme
Re-type new password: changeme
Adding password for user username
Когда все готово и работает, любой запрос к /private*
будет обработан Apache до того, как он будет направлен в ExpressionEngine.
Вуаля & mdash; Защищенные паролем каталоги Apache, работающие в гармонии с ExpressionEngine (или любой другой CMS, такой как WordPress, MovableType или TextPattern).
Контекст * директивы <Location>
указывает, что он может использоваться только в файлах конфигурации server config
и virtual host
. Это означает, что мы не можем поместить правила в файл .htaccess
, в противном случае Apache выдаст 500 Internal Server Error с описанием «Расположение здесь не разрешено».
- Если вы пытаетесь сопоставить объекты на уровне URL, вы должны использовать
<Location>
- Если вы пытаетесь сопоставить объекты на уровне файловой системы, вы должны использовать
<Directory>
и / или <Files>