В связи с моим предыдущим вопросом: .htaccess сначала проверьте cookie, а затем valid- пользователь
Привет, ребята, я действительно был бы признателен за помощь от экспертов здесь. Мой httpd.conf должен требовать входа пользователя в систему с использованием mod_auth_mysql ИЛИ файла cookie, но теперь он проверяет только вход пользователя. Код из предыдущего вопроса теперь находится в моем файле httpd.conf.
Что работает:
В настоящее время для всех /var/www/downloads и подкаталогов для пользователей (/var/www/downloads/~username~) требуется имя пользователя и пароль с использованием mod_auth_mysql. Это работает.
Что не работает:
Проблема в том, что у меня есть настройки, которые ДОЛЖНЫ требовать либо входа в систему с использованием mod_auth_mysql (работает), или файла cookie (не работает). Если файл cookie присутствует, он должен автоматически отображать содержимое каталога, когда пользователь переходит в /var/www/downloads/. Но это не так, он по-прежнему запрашивает логин/пароль.
Я использую SetEnvIf, но он может использоваться неправильно с «удовлетворить все». У меня могут быть конфликты между httpd.conf и /sites-enabled/000-default. У меня нет опыта работы с большинством вещей здесь, поэтому любая помощь будет очень признательна!
HTTPD.conf:
RewriteEngine on
RewriteLogLevel 9
RewriteLog /var/www/logs/rewrite.log
#Block IPs
<Directory /var/www>
RewriteEngine On
#only use my server for apache
RewriteCond %{HTTP_HOST} !^2.2.2.2$ [NC]
RewriteRule ^(.*)$ http://www.google.co.uk/$1 [L,R=301]
RewriteCond %{REMOTE_ADDR} 0.0.0.0 [NC,OR]
RewriteCond %{REMOTE_ADDR} 1.1.1.1 [NC]
RewriteRule ^(.*)$ http://www.google.com [R]
</Directory>
# DOWNLOADS TOP DIRECTORY
<Directory /var/www/downloads>
#Options Indexes
#AllowOverride All
#Order deny,allow
#Deny from all
#Allow from All
AuthName "Please don't hack the server, thanks"
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthType Basic
Auth_MYSQL on
Auth_MySQL_Host localhost
Auth_MySQL_User user
Auth_MySQL_Password password
AuthMySQL_DB db
AuthMySQL_Password_Table users
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encryption_Types Plaintext
Auth_MySQL_Authoritative On
require user luke
</Directory>
# EXAMPLE USERS DIRECTORY
# MIKE
<Directory /var/www/downloads/mike>
SetEnvIf Cookie (.*)cookiename(.*) norequire_auth=yes
Order Deny,Allow
deny from all
Satisfy Any
#MYSQL AUTH
AuthName "Please login"
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthType Basic
Auth_MYSQL on
Auth_MySQL_Host localhost
Auth_MySQL_User user
Auth_MySQL_Password password
AuthMySQL_DB db
AuthMySQL_Password_Table users
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encryption_Types Plaintext
Auth_MySQL_Authoritative On
require user mike
#COOKIE AUTH
Allow from env=norequire_auth
</Directory>
В случае, если это может помочь, sites-enabled/000-default: может вызывать конфликты? http://jsfiddle.net/Xcece/
Я не использую файлы .htaccess. Я изменил множество директив и совсем заблудился.
Я не могу на всю жизнь понять, почему это не работает - я не совсем понимаю конфликты, которые могут существовать, поэтому было бы здорово указать правильное направление с объяснением, чтобы я мог избежать этого в будущем. Спасибо.