“金房网”(http://www.jfangzi.com)的Apache伪静态化配置

    Apache 版本:2.2.8。

    httpd.conf 内容中:

    LoadModule rewrite_module modules/mod_rewrite.so #装载重写模块
    allowoverride all #表示允许 .htaccess 文件内的重写规则覆盖全局配置的规则。

    如果没有安装 mod_rewrite,可以重新编译 Apache,并在原有 configure 的内容中加入 –enable-rewrite=shared,然后再在 Apache 配置文件中加入上述代码即可。

    然后在网站根目录建立 .htaccess 文件,内容如下:

    rewriteengine on
    rewritebase /
    rewriterule ^new_realty-([0-9])+/.htm$ show_new_realty.php?id=$1

    正则表达式规则解释:

    计划把根目录下的形如“show_new_realty.php?id=数字”的链接变为形如“new_realty-数字.htm”。

    规则后加 [R=301],则是永久重定向,这里不应该加。

    正则表达式中的“$1”是正则表达式变量,代表匹配结果中的第一部分内容,在这里就是数字了。

    修改 httpd.conf 文件后必需重启 Apache 服务。修改 .htaccess 文件不用重启 Apache 服务。

    于是,打开 http://www.jfangzi.com/new_realty-500.htm 的链接,静默的获取了

    http://www.jfangzi.com/show_new_realty.php?id=500 的内容,浏览器地址栏的网址并没有显式的变为动态调用页面的形式。

    可以用 httpWatch 观察浏览器返回的 http 协议的状态信息,也没有返回 300/301/302 等重定向状态码。

    这里的关键就是书写正则表达式了。

    参考某论坛程序的伪静态化规则:

    RewriteEngine On
    RewriteRule ^(.*)/archiver/((fid|tid)-[/w/-]+/.html)$ $1/archiver/index.php?$2
    RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)/.html$ $1/forumdisplay.php?fid=$2&page=$3
    RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ $1/viewthread.php?tid=$2&extra=page/%3D$4&page=$3
    RewriteRule ^(.*)/space-(username|uid)-(.+)/.html$ $1/space.php?$2=$3
    RewriteRule ^(.*)/tag-(.+)/.html$ $1/tag.php?name=$2
    RewriteRule ^/home/(space|network)-(.+)/.html$ /home/$1/.php/?rewrite=$2
    RewriteRule ^/home/(space|network)/.html$ /home/$1/.php
    RewriteRule ^/home/([0-9]+)$ /home/space/.php/?uid=$1

    文章标题:《“金房网”(http://www.jfangzi.com)的 Apache 静态化配置》

    作者:张庆(网眼) 西安 PHP 教育培训中心 2010-6-14
    来自“网眼视界”:http://blog.why100000.com
    作者微博:http://t.qq.com/zhangking
    “十万个为什么”电脑学习网:http://www.why100000.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值