TShopping

 找回密碼
 註冊
搜索
查看: 1493|回復: 2
打印 上一主題 下一主題

[教學] Apache .htaccess偽靜態實現案例

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-2-26 01:12:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
為什麼要實現偽靜態,我就不多說了。
案例一,多個參數如何替換
億枝客比較導購網產品列表,上下頁地址如下格式:

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轉向

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-5-11 06:28 , Processed in 0.064550 second(s), 18 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表