vim /usr/local/apache2/conf/httpd.conf (主配置文件)

打开这个虚拟主机的配置文件,就不能curl主机配置文件里面了,就会404

wKioL1bEe8PQWZIRAAAGxMLXPbY269.png



1.7Apache用户认证

cd /data/www

mkdir abc

cp /etc/passwd  ./12.txt

在浏览器上192.168.0.188/abc/12.txt能看到passwd里面的内容,想不让其他人看到,要更改一下配置

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf(更改虚拟主机配置文件)

wKiom1bFxYyiZIY9AAD6dDYrFp8605.png

还要记住不能用#作注释,否则会出现错误

C:/Program Files/Apache Group/Apache2/htdocs/.htaccess: AuthName takes one argument, The authentication realm (e.g. "Members Only")


<Directory /data/www/abc>

AllowOverride AuthConfig  (表示进行身份验证)
AuthName "xiaoxuan"   (自定义的)
AuthType Basic        (认证类型)
AuthUserFile /data/.htpasswd  (是存放用户名和密码的文件,认证文件位置)
require valid-user
</Directory>

vim /etc/profile.d/path.sh (定义Apache不用输入那么长的名称)

wKioL1bFwxrSBl9aAAAP4iBSu94374.png

source /etc/profile.d/path.sh 

配置完虚拟主机配置文件,接下来建立验证文件

htpasswd -c /data/.htpasswd user1  (-c是创建这个文件/data/.htpasswd,后面跟username)

cat /data/.htpasswd

htpasswd /data/.htpasswd user2        (第二就不能加-c了,加了会把.htpasswd覆盖掉 )

wKiom1bFxhjR6sHGAABeRdMhokg115.png

apachectl graceful (重新加载)


1.##这里设置的目录为真实目录,并非虚拟目录
2.  AllowOverride AuthConfig为允许认证
3.  AuthType认证类型 Basic 由 mod_auth 提供
4.  AuthName这里定义的内容将在 web 弹出的登陆框中显示
5.  AuthUserFile定义认证文件路径,不要放在可能被下载到的地方
6.  Require user定义允许访问的用户
配置默认虚拟主机

apache 页面错误 查看 、/usr/local/apache2/logs/error-log




1.8默认虚拟主机

不管你是什么域名,只要你指向到这台服务器,那么都会访问到这个网站,访问到的是第一个虚拟主机配置文件里边的网站,Apache默认的虚拟主机就是第一个,就要增加一个新的虚拟主机配置文件在第一个,这样就起到限制的作用,想要禁掉就去创建一个空目录

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

wKioL1bFzDfw4QOXAAAOlkHu_04922.png

mkdir /tmp/123

chmod 600 /tmp/123

apachectl restart


192.168.3.39到浏览器访问,就会出现

wKioL1gPE3qhNbGjAAAM8zEvNck135.png




1.9 域名301跳转

www.test.com 和www.aaa.com肯定要分一个主次,这两个域名都能访问同一个站点,搜索引擎不知道哪个是主的,所以把www.aaa.com跳转到www.test.com,这样就能哪个是主哪个是次了


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

wKiom1bF2Y-zIVoTAADl7vB0L7o556.png

    <IfModule mod_rewrite.c>     (用到rewrite这个模块)
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^www.aaa.com$  [OR]     (这个是跳转的条件,[OR]表示或者,不加[OR]就是并且同时存在) 

        RewriteCond %{HTTP_HOST} ^www.bbb.com$

        RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]     (这个是规则,^/(.*)$以什么开头到结尾,(.*)这个作为一个整体,$1用来标记,最终会跳转到www.test.com/下面,R=301就是状态码,L==last表示结束了) 如:www.test.com/121212,^/是以域名之后的121212开始的,不包括www.test.com 。  
    </IfModule>


到浏览器访问www.aaa.com 都会跳转到www.test.com 


apache  -M (可以看到rewrite共享的模块)       301永久重定向

apache  -t

apache  restart

curl -x192.168.0.188:80 www.aaa.com/fsfsfs -I或者是

curl -x192.168.0.188:80 www.bbb.com/fsfsfs -I              //都会跳转到test.com

HTTP/1.1 301 Moved Permanently
Date: Fri, 05 Feb 2016 01:36:30 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Location: http://www.test.com/fsfsfs
Content-Type: text/html; charset=iso-8859-1