我最近使用Amazon Linux AMI创build了一个新的Amazon EC2实例。 在允许访问网站之前强制用户访问域名的最佳方式是input用户名/密码?
我目前正在使用Apache HTTP服务器,并看到一些资源表明我需要使用.htaccess文件,但正在寻找一个更简洁的解释。
如果你正在寻找的是服务器级的访问控制(即没有修改你的应用程序),你可以利用基本认证。 这是在Apache Web服务器级别实现的,如果需要使用.htaccess文件,可以按目录进行控制。
这是一个链接到Apache文档
http://httpd.apache.org/docs/2.2/howto/auth.html
这里是一个如何实现的简单例子
在要保护的文件夹中使用以下内容创建一个.htaccess文件:
AuthType Basic AuthName "Password Protected Area" AuthUserFile /var/www/admin/.htpasswd Require valid-user
创建一个.htpasswd
文件在/var/www
之外的同一个文件夹或最好是一个文件夹中。
为了演示,我在上面使用了一个虚拟路径。 .htpasswd文件应该包含你的密码salt使用这个生成器来创建你的.htpasswd
文件。
假设您使用的是Ubuntu,您必须通过此文件启用htaccess覆盖: /etc/apache2/sites-available/default
将“AllowOverride None”更改为“AllowOverride All”:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
注意:您可能需要通过命令行在ssh中进行编辑: sudo nano /etc/apache2/sites-available/default
sudo /etc/init.d/apache2 reload
您需要生成密码用户名和密码字符串进行身份验证,并将其写入文件。
AuthType Basic AuthName "Require Authentication" AuthUserFile [PATH_TO_FILE]/.htpasswd Require valid-user
如果密码未触发,请检查.htaccess文件的权限。
如果认证失败,请检查指定位置的.htpasswd文件的存在。 (请确保您的用户帐户在.htpasswd文件上具有足够的权限来读取)
你不需要重新启动服务器来实现这一点。
希望这可以帮助。
输入加密的密码并添加到.htpasswd文件中
$ htpasswd -nbm username Password
.htaccess文件条目
AuthType Basic AuthName "My Protected Area" AuthUserFile /absolute/path/to/password/file Require valid-user
有关更多详细信息,请通过此博客文章 – iCodefy