使用http和https通过htaccess授权访问



我一直在寻找解决方案,但没有找到明确的答案-这有点超出我的范围,但我需要在紧急情况下找到答案。

我使用.htaccess来验证并允许从外部链接访问某些网页。这是我使用的一个示例:

AuthUserFile /dev/null
AuthGroupFile /dev/null
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^http://www.website_xyz.com/
RewriteRule /* http://www.mysite.com/denied_message.php [R,L]

这是我想要的-我列出了我想访问的网站,并将.htaccess存放在根目录中。

我的问题是,当有人从HTTPS链接时,即使他们在列表中,它也会阻止他们(我也试着把HTTPS放在列表中)。我找到了各种各样的答案,但没有一个是我完全理解的,也没有一个能奏效。

其中一个正在使用:

RewriteCond %{HTTPS} on

但这允许任何人从任何地方进入。

有人能帮我把这个拼出来吗?

apache/LAMP

谢谢!

RewriteCond %{HTTPS} on

这增加了一个条件,即对您的网站的实际请求是通过HTTPS的。你只想匹配裁判。我不确定你在referer检查中添加了https://版本的内容,但当我把它们放在一个空白的htaccess文件中时,这是有效的:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^http://www.website_xyz.com/
RewriteCond %{HTTP_REFERER} !^https://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^https://www.website_xyz.com/
RewriteRule /* http://www.mysite.com/denied_message.php [R,L]   

最新更新