(1)Apache用户认证

编辑虚拟主机配置文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

修改增加规则如下

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/data/www"
    ServerName www.aaa.com
    ServerAlias www.bbb.com
#    ErrorLog "logs/dummy-host.example.com-error_log"
#    CustomLog "logs/dummy-host.example.com-access_log" common
    <Directory /data/www/abc>
        AllowOverride AuthConfig
        AuthName "aaaaaa"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </Directory>
</VirtualHost>

针对/data/www/abc/目录 authuserfile:存放用户名,密码的文件 authname:提示信息

创建密码文件

/usr/local/apache2/bin/htpasswd -c /data/.htpasswd user1

(再创建用户,不用 -c 用的话会覆盖文件)

访问/data/www/abc下文件需要键入用户名,密码



(2)禁止除自己域名之外的域名解析到自己ip访问以及ip访问

修改虚拟hosts主机文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/tmp/123"
    ServerName 1111111.com
</VirtualHost>

增加如上规则,其中创建/tmp/123/文件夹,更改权限为600,重启服务



(3)域名主次设定(301跳转)

301 永久重定向 302 临时重定向跳转

修改虚拟hosts主机文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

增加模块

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/data/www"
    ServerName www.aaa.com
    ServerAlias 
    ServerAlias www.ccc.com 
#    ErrorLog "logs/dummy-host.example.com-error_log"
#    CustomLog "logs/dummy-host.example.com-access_log" common

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^ [OR] 
        RewriteCond %{HTTP_HOST} ^www.ccc.com$
        RewriteRule ^/(.*)$ http://www.aaa.com/$1 [R=301,L]
    </IfModule>
</VirtualHost>

把bbb.com跳到aaa.com 把bbb.com/之后的部分作为变量,打包用$1标记写到aaa.com/后边.

RewriteCond :跳转条件 RewriteRule:跳转规则

多个次域名(多个跳转条件中用 OR 连接)