Apache用戶認證,域名跳轉,Apache訪問日誌

Apache用戶認證:

 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那個虛擬主機編輯成以下內容
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    <Directory /data/wwwroot/www.123.com> //指定認證的目錄
        AllowOverride AuthConfig //這個至關於打開認證的開關
        AuthName "123.com user auth" //自定義認證的名字,做用不大
        AuthType Basic //認證的類型,通常爲Basic,其餘類型阿銘沒用過
        AuthUserFile /data/.htpasswd  //指定密碼文件所在位置
        require valid-user //指定須要認證的用戶爲所有可用用戶
    </Directory>

</VirtualHost>
 /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming 
 從新加載配置php

/usr/local/apache2.4/bin/apachectl -t ,    = 測試配置文件是否正確linux

/usr/local/apache2.4/bin/apachectl graceful     =從新加載配置文件
 綁定hosts(Windows的hosts文件),瀏覽器測試
 curl -x127.0.0.1:80 www.123.com //狀態碼爲401說明須要認證用戶和密碼
 curl -x127.0.0.1:80 -uaming:passwd www.123.com //狀態碼爲200正確認證   200=沒問題apache

配置文件修改以下:vim

配置文件修改完之後生成密碼:瀏覽器

 /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming    (測試機器密碼rabbit)bash

第二次再次建立新用戶那麼就不須要 -c 由於已經建立過密碼文件了。服務器

 

 

 

域名跳轉:

域名跳轉分類及區別

種類:

301表示永久跳轉;302表示臨時跳轉。php7

區別:

  • 使用效果不一樣
    • 302跳轉是暫時的跳轉,搜索引擎會抓取新的內容而保留舊的網址。由於服務器返回302代碼,搜索引擎認爲新的網址只是暫時的。
    • 301重定向是永久的重定向,搜索引擎在抓取新內容的同時也將舊的網址替換爲重定向以後的網址。
  • SEO使用方式不一樣
    在搜索引擎優化中302跳轉被衆多黑帽SEO優化人員追求,對網站進行惡意302跳轉至非用戶目標訪問網站,所以搜索引擎對於網站的302跳轉一般是比較不友好,因此要慎用302跳轉!

SEO

SEO(Search Engine Optimization)搜索引擎優化,在瞭解搜索引擎天然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中的關鍵詞天然排名,得到更多流量,從而達成網站銷售及品牌建設的預期目標。curl

 

域名跳轉配置

  • 配置虛擬主機配置文件:httpd-vhosts.conf。
[root@adailinux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
……
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
    #須要mod_rewrite的支持
        RewriteEngine on
        #開啓rewrite功能
        RewriteCond %{HTTP_HOST} !^111.com$
        #Cond=condition,定義rewrite條件:全部非111.com的主機名(域名)
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
        #定義rewrite規則:當知足上面條件時才執行當前規則,即跳轉到111.com。
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>
<IfModule mod_rewrite.c> //須要mod_rewrite模塊支持
        RewriteEngine on  //打開rewrite功能    on=打開  off=關閉
        RewriteCond %{HTTP_HOST} !^111.com$  //定義rewrite的條件,主機名(域名)不是www.123.com知足條件     =  當域名不是  111.com  那麼就會進行跳轉
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] //定義rewrite規則,當知足上面的條件時,這條規則纔會執行      R=301 表示永久跳轉   L=只跳轉一次    R=302 表示臨時跳轉
</IfModule>
  • 檢查系統配置:
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite

在此檢查Apache是否加載了虛擬主機配置中調用的rewrite模塊,若是沒有加載,須要編輯Apache配置文件「httpd.conf」 搜索 rewrite :ide

[root@aminglinux ~]# vim /usr/local/apache2.4/conf/httpd.conf   
……
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so
#LoadModule php7_module        modules/libphp7.so

即,去掉註釋符號「#」,加載rewrite模塊。

  • 檢測
[root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@aming-01 ~]# /usr/local/apache2.4/bin/apachectl -M | grep rewrite
 rewrite_module (shared)

使用curl檢測:

此時,狀態碼爲301,即設定了域名永久跳轉!   狀態碼爲404表示頁面不存在 , 狀態碼爲401表示須要網頁驗證。

在瀏覽器進行檢測時,訪問「www.example.com」會直接跳轉到「111.com」。

 

11.21 Apache訪問日誌:

日誌文件所在位置:

access_log 表示訪問日誌     error_log 表示錯誤日誌

[root@aminglinux ~]# ls /usr/local/apache2.4/logs
111.com-access_log  abc.com-access_log  access_log  httpd.pid
111.com-error_log   abc.com-error_log   error_log

 

自定義日誌格式

系統自帶日誌格式:

vim /usr/local/apache2.4/conf/httpd.con

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common     common=系統默認格式
#h表示host來源IP,l表示login用戶,u表示user用戶密碼,t表示time時間,r表示request(行爲),s表示status狀態碼,b表示byte大小
#user-agent:用戶代理
#referer:跳轉到當前位置的上一個網址(即:提供當前IP的網站)

配置日誌格式

編輯虛擬主機配置文件「httpd-vhosts.conf」:

[root@aminglinux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" combined
</VirtualHost>

說明: 將日誌文件後面原有 common改成combined。

從新加載:

[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@aminglinux ~]# /usr/local/apache2.4/bin/apachectl graceful

查看更改後的日誌樣式:

[root@aminglinux ~]# cat /usr/local/apache2.4/logs/111.com-access_log

 

 

擴展 
apache虛擬主機開啓php的短標籤 http://ask.apelearn.com/question/5370

相關文章
相關標籤/搜索