所需阅读权限 1
[转帖]URL优化技术--类似CU的动态页面静态网址
| CU论坛进入分论坛的每个话题连接是html,这种技术最近得到很多的应用。 http://bbs.xianfeng.net/index.html
 就是这样子的例子。
 
 一、前提条件:
 引用:
 服务器上面的WEB服务器软件为Apache,至于其他的WEB服务器软件是否可以做到我没有测试
 
 
 二、必要条件:
 引用:
 加载了ReWrite模块,这个看看你的Httpd.conf的配置文件之中关于rewrite的模块是否#屏蔽了
 
 代码:
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so
 
 
 三、必备知识:
 引用:
 正则表达式的相关知识,虽然在一些基本应用之中,可能不一定需要正则表达式的知识,但是你可能会上瘾,所以强烈建议掌握相关正则表达式的知识
 
 
 四、配置
 引用:
 
 以下的配置,是我实际应用,绝对正确(处于相关原因,未能原版展示,请见谅,但是所显得绝对是可用的):
 
 
 
 代码:
 #打开Rewrite
 RewriteEngine On
 #Rewrite规则集
 RewriteRule ^/forum([0-9]+)_topic([0-9]+)\.html$ /topic.cgi?forum=$1&topic=$2
 RewriteRule ^/forum([0-9]+)\.html$ /forums.cgi?forum=$1
 RewriteRule ^/index.html$ /index.cgi
 RewriteRule ^/view_forum([0-9]+)_topic([0-9]+)\.html$ /view.cgi?forum=$1&topic=$2
 RewriteRule ^/forum([0-9]+)_show([0-9]+)\.html$ /forums.cgi?forum=$1&show=$2
 
 
 五、说明
 引用:
 
 RewriteRule ^/forum([0-9]+)_topic([0-9]+)_show([0-9]+)\.html$ /topic.cgi?forum=$1&topic=$2&show=$3
 这个rewrite规则分为三个部分:
 RewriteRule 要转换的表达式 实际的调用页面
 ^/forum([0-9]+)_topic([0-9]+)\.html$
 表示    表示
 论坛    文章
 编号    编号
 一到    $2
 多个
 数字
 匹配
 结果
 在$1
 /topic.cgi?forum=$1&topic=$2
 如果网址为:
 forum12_topic234.html
 就表示论坛12的第234个主题,调用的实际页面就是
 topic.cgi?forum=12&topic=234
 
 
 
 六、程序上的修改:
 代码:
 以上所做的已经可以把一个有效的静态地址转换为动态页面了,当然我们需要修改一下子我们自己的程序:
 例如原来的程序是:
 echo "topic.cgi?forum=$forumid&topic=$topicid"
 那么修改后的程序就是:
 echo "forum$forumid\_topic$topicid.html"
 
 
 
 七、附加:
 引用:
 
 以上所说得其实很简陋,如果你掌握了正则表达式的相关知识,也掌握了Apache的rewrite的相关知识,那么所能做到得远比以上所展示的精彩绝伦,当然,太复杂了也不是好事哦
 
 |