Я создал сайт dev и хочу защитить его паролем, поэтому только проверенные посетители могут просматривать сайт. Все хорошо и хорошо. Меня раздражает моя локальная версия, введя мое имя пользователя и пароль. Итак, не меняя файл htaccess между моей локальной копией и ссылкой на сайт dev, как мне защитить паролем сайт, но разрешить мне доступ без ввода моего имени пользователя и пароля?
Htaccess защищает паролем, но не на localhost
Ответ 1
Что-то вроде этого должно сделать трюк.
Require valid-user
Allow from 127.0.0.1
Satisfy Any
Ответ 2
Я разработал классный способ отделить Linux от файлов паролей Windows (потому что я разрабатываю в Windows, а затем выпускаю на сервер производства Linux).
Я только что написал php script с phpinfo(); на нашем локальном и prod-сервере и нашел модуль apache 'mod_win32' для разделения двух из них.
<IfModule mod_win32.c>
AuthUserFile C:\xampplite\your\windows\path.passwd
</IfModule>
<IfModule !mod_win32.c>
AuthUserFile "/your/linux/path/.passwd"
</IfModule>
AuthName "Please Login"
RewriteEngine On
AuthType Basic
Require valid-user
Ответ 3
Предполагая, что вы правильно ввели пароль на сайте dev - поместите директивы auth в VirtualHost на сайте dev, а не в файл .htaccess, - таким образом ваш auth обрабатывается на уровне сервера, а не на уровне каталога.
Кроме того, большинство современных браузеров, вероятно, сохранит ваш пароль для вас:)
Ответ 4
Как обсуждалось здесь, вы можете использовать allow from
, чтобы разрешить доступ с определенного хоста.
Ответ 5
С Apache 2.4 вы также можете окружать защиту паролем, проверяя переменную окружения HTTP_HOST следующим образом:
<If "%{HTTP_HOST} != 'localhost'">
# Your password protection code
</If>
См. также ответ от Марка Фокса на вопрос о доступе к переменным окружения.
Ответ 6
Пример для Windows:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile C:/Apache24/htdocs/.htpasswd
Require valid-user
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
Satisfy Any