我试图通过基本的授权强制一个特定的目录只需要允许的IP和一个有效的用户名/密码。 为了确保用户名/密码以encryptionforms发送,我希望目录也强制SSL使用。 这是我在.htaccess文件中的内容:
# Force HTTPS-Connection RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://www.mywebsite.com%{REQUEST_URI} [R,L] ## password begin ## AuthName "Restricted Access" AuthUserFile /var/www/admin/.htpasswd AuthType Basic Require valid-user Order deny,allow Deny from all Allow from 79.1.231.151 62.123.134.83 Satisfy All
不幸的是,当我使用http协议访问该目录时,它在将页面redirect到安全版本之前要求input密码。 这意味着密码未encryption发送。 我究竟做错了什么? 有没有办法做到这一点?
尝试将SSLRequireSSL放入.htaccess文件或全局Apache httpdconfiguration中。
自动化后重写和redirect。 但是:httpd.conf中的别名首先被解决。
所以我做了什么让我的http:// servername / webmail https://webmail.servername是把它放在这样的httpd.conf:
<IfModule alias_module> Redirect permanent /webmail https://webmail.servername </IfModule>
基本的自动化可以留在您的.htaccess中,并将执行redirect后执行一次…
如果您有权访问Apacheconfiguration,请将身份validation节添加到启用了SSL的VirtualHost 。 那么redirect将总是首先发生。
此外,使用mod_rewrite来执行一个简单的redirect是有点矫枉过正。 改用Redirect指令。 这可能甚至可以解决您的问题,因为我相信mod_rewrite规则是在文件实际从文件系统抓取之前最后处理的一些指令。