1.檢測Apache是否支持mod_rewrite
通過php提供的phpinfo()函數查看環境配置,通過Ctrl+F查找到“Loaded Modules”,其中列出了所有
apache2handler已經開啟的模塊,如果裡面包括“mod_rewrite”,則已經支持,不再需要繼續設置。
如果沒有開啟“mod_rewrite”,則打開目錄 您的apache安裝目錄“/apache/conf/” 下的 httpd.conf 文
件,通過Ctrl+F查找到“LoadModule rewrite_module”,將前面的”#”號刪除即可。
如果沒有查找到,則到“LoadModule” 區域,在最後一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必選獨占一行),然後重啟apache服務器即可。
2.在httpd.conf中配置虛擬主機
# Virtual hosts 啟用虛擬主機
Include conf/extra/httpd-vhosts.conf
3.httpd_vhosts.conf文件中,配置相應的選項.詳細講解
<VirtualHost *:80>
DocumentRoot "C:/myenv/apache/htdocs/static3"
ServerName www.hsp.com
<Directory "C:/myenv/apache/htdocs/static3">
#Deny from All 403錯誤提示
Allow from All
#如果文件目錄在apache目錄外面,注釋掉optinos 則,不能列表.
options +Indexes
#下面這個表示可以去讀取 .htaccess文件,也可以直接在虛擬主機中配置.
Allowoverride All
RewriteEngine On
RewriteRule news-id(\d+).html$ error.php?id=$1
#這裡可以設置多個重寫的規則
#RewriteRule news-id.html$ error.php
</Directory>
</VirtualHost>
4.在相應的目錄下編寫.htaccess 重寫規則
例子:
<IfModule rewrite_module>
RewriteEngine On
RewriteRule news-id(\d+).html$ show.php?id=$1
#這裡可以設置多個重寫的規則
#RewriteRule news-id.html$ error.php
</IfModule>
如果在linux下可以直接創建,
如果是在windows平台下,用記事本創建一個文件,比如abc.txt,然後另存
為 .htaccess文件即可
5.重寫規則,也可以直接在配置虛擬主機的<Directory>段配置.