Apache .htaccess偽靜態實現案例
為什麼要實現偽靜態,我就不多說了。案例一,多個參數如何替換
億枝客比較導購網產品列表,上下頁地址如下格式:
http://www.yicike.com/category.php?categoryId=1169&&minPrice=0&maxPrice=0&mer=&manu=&so=&t=11621&x=16
非常長,將近8個參數,我們如何處理呢,經過多次嘗試最後,解決如下:
RewriteEngine on
RewriteBase /
RewriteRule ^mp(*)-(*)-(*)-(*)-(*)-(*)-(*)-(*).htm
category.php?categoryId=$1&&minPrice=$2&maxPrice=$3&mer=$4&manu=$5&so=$6&t=$7&x=$8
具體做法網上有很多教程,我簡單列一下:
1、 啟用rewrite,打開httpd.conf找到下面這一行,並去了前面的#號
LoadModule rewrite_module libexec/mod_rewrite.so
2 、把httpd.conf 網站所在目錄,設定為
Options Indexes FollowSymLinks
AllowOverride all
3、創建.htaccess
4、將代碼寫.htaccess
第一行:RewriteRule ^mp(*)-(*)-(*)-(*)-(*)-(*)-(*)-(*).htm
第二行:category.php?categoryId=$1&&minPrice=$2&maxPrice=$3&mer=$4&manu=$5&so=$6&t=$7&x=$8
第二行這裡從$1-$8共8個參數,其分別對應第一行從左到右,按 "-"隔開正則表達部分,如$1對應mp右邊的(*),以此類推,就可以將8個參數對應起來。要知道(*)具體意義,要參考學習正則表達式。
案例二,如何在windows裡創建與修改.htaccess
利用FTP遠程連接處理。
案例三,多個規則注意順序,先匹配長的,再匹配短的
.htaccess裡如果有多個轉向,那麼就要注意順序了,順序不同有可能導致問題。比如以下兩個現在順序,就會導致第二個轉向失效,交換一個前後位置就OK了。
#產品比較地址
RewriteRule ^(*)-*/(*)-(*).htm products.php?categoryId=$1&productId=$2
#產品詳細地址
RewriteRule ^(*)-*/(*)-(*)-detail.htm products_detail.php?categoryId=$1&productId=$2
案例四,固定值不需要處理
如將 products_detail.htm?categoryId=1357&productId=1337 替換為 products_detail.php?categoryId=1357&productId=1337
就可以直接寫成
RewriteRule ^products_detail.htm products_detail.php
案例五,各種轉向代碼實例
301
rewriteCond %{http_host} ^stseo.com
rewriteRule ^(.*)$ http://www.stseo.com/$1
302
域名解析裡設置的URL轉向
頁:
[1]