僞靜態詳解筆記

1.檢測Apache是否支持mod_rewritephp

經過php提供的phpinfo()函數查看環境配置,經過Ctrl+F查找到「Loaded Modules」,其中列出了全部html

apache2handler已經開啓的模塊,若是裏面包括「mod_rewrite」,則已經支持,再也不須要繼續設置。正則表達式

若是沒有開啓「mod_rewrite」,則打開目錄 您的apache安裝目錄「/apache/conf/」 下的 httpd.conf 文件,經過Ctrl+F查找到「LoadModule rewrite_module」,將前面的」#」號刪除便可。數據庫

若是沒有查找到,則到「LoadModule」 區域,在最後一行加入「LoadModule rewrite_module modules/mod_rewrite.so」(必選獨佔一行),而後重啓apache服務器便可。apache

#啓用咱們的rewrite模塊服務器

LoadModule rewrite_module modules/mod_rewrite.soide


2.在httpd.conf中配置虛擬主機函數

# Virtual hosts 啓用虛擬主機測試

Include conf/extra/httpd-vhosts.conf網站


3.httpd_vhosts.conf文件中,配置相應的選項.詳細講解

<VirtualHost *:80>

    DocumentRoot "C:/myenv2/apache/htdocs/static2"

    ServerName www.hsp.com

    <Directory "C:/myenv2/apache/htdocs/static2">

#403錯誤提示,能夠阻止人訪問.

#Allow from All

#若是文件目錄在apache目錄外面,註釋掉optinos 則,不能列表.

#options +Indexes

#不讓列出列表配置

#options None

#設置歡迎頁面

#DirectoryIndex  aa.html

#下面這個表示能夠去讀取 .htaccess文件,也能夠直接在虛擬主機中配置.

#Allowoverride All

RewriteEngine On

RewriteRule news-id(\d+).html$ searchNews.php?id=$1

#若是匹配不到,能夠指定一個錯誤頁

errorDocument 404 /404.php

#這裏能夠設置多個重寫的規則

#RewriteRule news-id.html$ error.php

    </Directory>

</VirtualHost>


四、vhost文件中配置 

測試一下虛擬主機是否配置ok

 若是咱們的虛擬主機,沒有指定訪問的權限,則以上級目錄的權限爲標準,若是指定了,則以本身的配置爲準

咱們來看看如何配置咱們的rewrite 這個規則特別說明該規則實際上就是一個正則表達式這個表達式能夠寫 httpd-vhost.conf 也能夠寫在 .htaccess 文件.

最後的配置結果以下:

<VirtualHost *:80>

     DocumentRoot "C:/myenv2/apache/htdocs/static2"

        ServerName www.hsp.com

    #Directory這個 段,主要用處指定,該目錄的訪問權限

         <Directory "C:/myenv2/apache/htdocs/static2">

    #若是你不想讓別人訪問你的網站Deny from 211.11.89 或者 Deny from all

        Allow from all

    #不列出該網站的文件列表 Options None|+indexes

        Options +indexes

    #設置網站默認的首頁面 http://www.hsp.com

        DirectoryIndex abc.html

    #配置統一的 404頁面

        errordocument 404 /errro.html

        RewriteEngine On

        RewriteRule news-id(\d+)\.html$  showNews.php?id=$1

           </Directory>

</VirtualHost>



 實現僞靜態的第二種方式

在文件夾下,直接經過寫 .htaccess 文件來指定從新規範

步驟 a. 首先咱們在 配置文件中添加 

<IfModule rewrite_module>

RewriteEngine On

#rewrite 僞靜態的規範能夠有多個,他是依次匹配. if else if

RewriteRule news-id(\d+)\.html$  showNews.php?id=$1

</IfModule>

 

實際應用說 ,個人網站有兩個文件,放入圖片一個文件夾下圖片是公開的,而另外一文件夾圖片是私有的,不能夠直接訪問,怎麼處理?

 

處理的方法是在每一個文件夾下 建立一個文件  .htaccess , 能夠這裏指定哪些ip能夠訪問咱們的資源.!!!->測試沒有過

咱們就在 www.hsp.com 這個主機下去測試 

 

僞靜態的優缺點分析:

優勢: 1. SEO 2. 防止注入 3. 佔用空間小

缺點: 1. 由於沒有真正的靜態化,所以每次請求是須要查詢數據庫

相關文章
相關標籤/搜索