|
為什麼要實現偽靜態,我就不多說了。
案例一,多個參數如何替換
億枝客比較導購網產品列表,上下頁地址如下格式:
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([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*).htm
category.php?categoryId=$1&&minPrice=$2&maxPrice=$3&mer=$4&manu=$5&so=$6&t=$7&x=$8 [L,NC]
具體做法網上有很多教程,我簡單列一下:
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([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*).htm
第二行:category.php?categoryId=$1&&minPrice=$2&maxPrice=$3&mer=$4&manu=$5&so=$6&t=$7&x=$8 [L,NC]
第二行這裡從$1-$8共8個參數,其分別對應第一行從左到右,按 "-" 隔開正則表達部分,如$1對應mp右邊的([0-9]*),以此類推,就可以將8個參數對應起來。要知道([0-9]*)具體意義,要參考學習正則表達式。
案例二,如何在windows裡創建與修改.htaccess
利用FTP遠程連接處理。
案例三,多個規則注意順序,先匹配長的,再匹配短的
.htaccess裡如果有多個轉向,那麼就要注意順序了,順序不同有可能導致問題。比如以下兩個現在順序,就會導致第二個轉向失效,交換一個前後位置就OK了。
#產品比較地址
RewriteRule ^([0-9]*)-[a-zA-Z0-9&-+._'"]*/([0-9]*)-([a-zA-Z0-9&-+._'"]*).htm products.php?categoryId=$1&productId=$2 [L,NC]
#產品詳細地址
RewriteRule ^([0-9]*)-[a-zA-Z0-9&-+._'"]*/([0-9]*)-([a-zA-Z0-9&-+._'"]*)-detail.htm products_detail.php?categoryId=$1&productId=$2 [L,NC]
案例四,固定值不需要處理
如將 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 [NC]
rewriteRule ^(.*)$ http://www.stseo.com/$1 [R=301,L]
302
域名解析裡設置的URL轉向
|
|