我正在运行Apache/2.4.38 (Debian)服务器。这是我的
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user和我的/etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>使用时,用户必须输入登录名和密码才能访问网站。一切都很好!
当我使用AllowOverride None时,没有人需要输入任何东西。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>我如何允许从某个IP (或域名)访问,使用户不必输入登录/通过?理想情况下,我希望只允许从某个域(https://mxtoolbox.com/SuperTool.aspx?action=a%3abiosoft-ipcms.fr&run=toolpage)访问。
发布于 2020-11-10 12:07:54
与在服务器配置和.htaccess文件之间拆分配置不同,如果将所有配置都保存在服务器配置中,则维护更容易,执行速度更快。然后,您可以将以下内容放在服务器配置中:
<Directory /var/www>
Require all granted
</Directory>
<Directory /var/www/html>
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
<RequireAny>
Require valid-user
Require ip ...
</RequireAny>
</Directory>在其中插入要允许的源主机的IP地址。如果希望只允许来自某个引用者URL的请求,还可以添加以下内容
Require expr "%{HTTP_REFERER} == ..."但是请注意,请求者可以将引用头设置为他们想要的任何值,因此这是不安全的。
请参阅要求、RequireAny和表达式的文档。
https://serverfault.com/questions/1041915
复制相似问题