Mat*_*hew 7 apache .htaccess mod-rewrite url-rewriting http-authentication
我试图~/public_html/dev使用http auth basic 保护目录,但为了使其安全,我想在ssl上运行它.
.htaccess如果请求URI /dev以及开始工作,则以下文件的中间部分将切换为https .
该文件的最后一部分也可以正常工作,但与https重定向无法正常工作.
我基本上希望能够键入http://www.example.com/dev/some_sub_dir/并重定向到https://www.example.com/dev/some_sub_dir/并提示输入http auth用户名和密码.
目前发生的情况是,如果我去,http://www.example.com/dev/some_sub_dir/我会通过端口80提示输入用户名和密码,然后立即通过端口443再次提示.因此,我的凭据被发送两次,一次是明文,一次加密.使整个https url重写有点无意义.
这样做的原因是我无法意外地通过http提交我的用户/传递; https将始终用于访问该/dev目录.
该.htaccess是在~/public_html/dev目录中.
# Rewrite Rules for example.com
RewriteEngine On
RewriteBase /
# force /dev over https
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^/dev
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# do auth
AuthType Basic
AuthName "dev"
AuthUserFile /home/matt/public_html/dev/.htpasswd
Require valid-user
sil*_*tar 11
在进行基本身份验证之前,有一个相对流行的黑客强制HTTPS.我第一次看到它:
http://blog.jozjan.net/2008/02/htaccess-redirect-to-ssl-https-before.html
它涉及使用自定义错误文档来处理HTTPS检查失败后发生的任何事情.
例如,我有一个我需要强制启用HTTPS的页面,所以我在.htaccess文件中执行了此操作:
<FilesMatch "secure-page.php">
SSLRequireSSL
ErrorDocument 403 https://www.example.com/secure-page.php
AuthType Basic
AuthName "Secure Page"
AuthUserFile /var/www/whatever/.htpasswdFile
Require valid-user
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
这意味着:
如果请求的页面是'secure-page.php' - 如果不是HTTPS,则重定向到自定义'错误页' - '错误页'实际上只是页面的HTTPS版本 - 在第二个请求上,因为HTTPS检查现在通过,执行基本身份验证:)
您可以将此概念扩展到目录或其他用例 - 您的自定义"错误页面"可能是重定向到正确HTTPS URL的php页面,或者像上面链接中的CGI脚本...
| 归档时间: |
|
| 查看次数: |
18630 次 |
| 最近记录: |