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. 由於沒有真正的靜態化,所以每次請求是須要查詢數據庫