密码保护我的网站

and*_*sra 14 apache webserver amazon-ec2

我最近使用Amazon Linux AMI创建了一个新的Amazon EC2实例.在允许访问网站之前,强制用户访问域名以输入用户名/密码的最佳方法是什么?

我目前正在使用apache http服务器,并看到一些资源表明我需要使用.htaccess文件,但正在寻找更简洁的解释.

Geo*_*rge 28

密码保护网站通过Htaccess

  1. 在要保护的文件夹中使用以下内容创建.htaccess文件:

    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile /var/www/admin/.htpasswd
    Require valid-user
    
    Run Code Online (Sandbox Code Playgroud)
  2. .htpasswd在相同或最好是外部的文件夹中创建文件/var/www.

    为了演示,我使用了上面的虚拟路径..htpasswd文件应该包含您的密码salt使用此生成器来创建您的.htpasswd文件.

  3. 假设您使用的是ubuntu,则必须通过此文件启用htaccess override: /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>
    
    Run Code Online (Sandbox Code Playgroud)

注意:您可能需要通过命令行在ssh中编辑: sudo nano /etc/apache2/sites-available/default

  1. sudo /etc/init.d/apache2 reload

  • 通常,只有在无法访问主服务器配置文件时才应使用.htaccess文件.例如,有一种常见的误解,即用户身份验证应始终在.htaccess文件中完成,并且在最近几年,另一种误解是mod_rewrite指令必须放在.htaccess文件中.这根本不是那么回事.您可以将用户身份验证配置放在主服务器配置中,事实上,这是执行操作的首选方式.同样,mod_rewrite指令在许多方面在主服务器配置中更好地工作. (3认同)

Mik*_*ant 5

如果您只需要服务器级别的访问控制(即不修改您的应用程序),您可以使用基本身份验证。这是在 Apache Web 服务器级别实现的,如果需要,可以使用 .htaccess 文件在逐个目录的基础上进行控制。

这是 Apache 文档的链接

http://httpd.apache.org/docs/2.2/howto/auth.html

这是一个如何实现的简单示例

http://doc.norang.ca/apache-basic-auth.html