我一直在寻找解决方案而没有找到明确的答案 - 这有点偏离我的领域,但我需要在紧要关头找到答案。
我使用.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
谢谢!
答案 0 :(得分:2)
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]