.htaccess

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([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转向

 

参考:

正则表达式30分钟入门教程

转向效果检查工具

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: Apache .htaccess伪静态实现案例

By LEO on 2009年04月17日 | 技术整理, 网络营销 | 1 comment
标签:, , ,