一、目錄別名實驗
當 接受請求時,在默認情況下會將 目錄中的文件送到客戶端,如果想將某一不在 目錄中的文件共享到網站上,并希望將它們留在本來位置而不需要進行移動的話, 處理這種情況可以通過建立別名的方式將 URL 指向特定的目錄。
1、修改主配置文件
大概在468行左右,取消注釋
[root@centos ~]# vim /usr/local/apache2/etc/httpd.conf
Include etc/extra/httpd-autoindex.conf
2、修改子配置文件
[root@centos ~]# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf
Alias /test/ "/tmp/test/"
Options Indexes MultiViews
AllowOverride None
Require all granted
3、創建目錄,并創建文件
[root@centos ~]# mkdir /tmp/test/
[root@centos test]# echo 123456 > 1.txt
4、瀏覽器進行訪問二、 的用戶認證
有時候,我們需要給一些特殊的訪問設置一個用戶認證機制,增加安全。比如我們的個人網站,一般都是有一個管理后臺的,雖然管理后臺本身就有密碼,但我們為了更加安全,可以再設置一層用戶身份認證。
1、修改主配置文件
[root@centos apache2]# vim /usr/local/apache2/etc/httpd.conf
#聲明被保護目錄
Options Indexes FollowSymLinks
AllowOverride All #開啟權限認證文件.htaccess
Require all granted #允許訪問
2、在指定目錄下創建權限文件
[root@centos apache2]# mkdir /usr/local/apache2/htdocs/admin
[root@centos admin]# vim .htaccess
AuthName "Welcome to admin manager" #提示信息
AuthType basic #加密類型
AuthUserFile /usr/local/apache2/htdocs/admin/admin.passwd #密碼文件,文件名自定義。
require valid-user #允許密碼文件中所有用戶訪問
3、在指定目錄下創建密碼文件,加入允許訪問的用戶。(此用戶和系統用戶無關)
[root@centos admin]# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/htdocs/admin/admin.passwd test1 #第一個用戶使用 -c參數
New password:
Re-type new password:
Adding password for user test1
[root@centos admin]# /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/htdocs/admin/admin.passwd test2 #再添加用戶則使用 -m參數
New password:

Re-type new password:
Adding password for user test2
4、重啟
[root@centos admin]# /usr/local/apache2/bin/apachectl -t
[root@centos admin]# /usr/local/apache2/bin/apachectl restart
5、訪問三、虛擬主機實驗
虛擬主機,也叫“網站空間”apache服務器實驗內容,就是把一臺運行在互聯網上的物理服務器劃分成多個“虛擬”服務器。 虛擬主機技術極大的促進了網絡技術的應用和普及。同時虛擬主機的租用服務也成了網絡時代的一種新型經濟形式。
虛擬主機的分類:
基于 IP 的虛擬主機:一臺服務器,多個 ip,搭建多個網站
基于端口的虛擬主機:一臺服務器,一個 ipapache服務器實驗內容,搭建多個網站,每個網絡使用不同端口訪問
基于域名的虛擬主機:一臺服務器,一個 ip,搭建多個網站,每個網站使用不同域名訪問(最常用)
1、準備兩個域名
www.qq.com
www.bb.com
2、修改主配置文件
[root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
Include etc/extra/httpd-vhosts.conf(大約在485行,取消注釋)
3、修改子配置文件
[root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
#目錄權限

Options Indexes FollowSymLinks
AllowOverride None
Require all granted
#虛擬主機配置
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/qq"
ServerName www.qq.com
ErrorLog "logs/qq-error_log"
CustomLog "logs/qq-access_log" common
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/bb"
ServerName www.bb.com

ErrorLog "logs/bb-error_log"
CustomLog "logs/bb-access_log" common
4、創建目錄,并寫入內容。
[root@centos admin]# mkdir /usr/local/apache2/htdocs/{qq,bb}
[root@centos admin]# echo thie is qq >/usr/local/apache2/htdocs/qq/index.html
[root@centos admin]# echo thie is bb >/usr/local/apache2/htdocs/bb/index.html
5、修改 hosts文件,進行訪問測試
20.20.20.21 www.qq.com
20.20.20.21 www.bb.com
6、訪問
四、域名跳轉實驗
一個站點難免會有多個域名,而多個域名總得有一個主次,比如我的網站可以用兩個域名訪問: 和 但大家發現不管我用哪個域名訪問,最終都會跳轉到 上 來。這個行為就叫做域名跳轉。
1、編輯主配置文件
[root@centos admin]# vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so(大學約在153行,取消注釋)
2、修改虛擬主機配置文件
root@centos admin]# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
Options Indexes FollowSymLinks

AllowOverride All #修改此處,在認證文件中,進行跳轉。
Require all granted
ServerAdmin 2829507692@qq.com
DocumentRoot "/usr/local/apache2/htdocs/bb"
ServerName www.bb.com
ErrorLog "logs/bb-error_log"
CustomLog "logs/bb-access_log" common
3、創建規則匹配文件
[root@centos admin]# vim /usr/local/apache2/htdocs/bb/.htaccess
RewriteEngine on # 開啟rewrite功能
RewriteCond %{HTTP_HOST} ^www.bb.com # 把以www.bb.com 開頭的內容賦值給HTTP_HOST變量
RewriteRule ^(.*)$ http://www.qq.com/$1 [R=permanent,L]
# ^(.*)$ 指代客戶端要訪問的資源
# $1 把 .* 所指代的內容賦值到$1變量中
# R=permanent 永久重定向 = 301
# L 指定該規則為最后一條生效的規則,以后的不再生效
4、重啟,訪問
[root@centos ~]# /usr/local/apache2/bin/apachectl restart