当前位置: 首页 > 帮助中心 > 常见问题

什么是URLRewrite

发布日期:2012-11-16 14:35:30 浏览次数:

 

随着SEO的普及,静态化便成为网站开发的必要技术之一。网站静态化通常有三种方法可以实现,一种是伪静态,一种是实实在在的静态页面, 后一种是pathinfo技术。

伪静态下,如果是apache服务器,是通过.htaccess文件来操作。如果是IIS服务器,则是通过httpd.ini和rewrite.dll来实现。伪静态处理的关键技术是配置文件的规则如何得到有效的控制,并在html页面里对应起来,一旦规则改变,则html页面里的链接也需要根据规则动态的改变。后台设置规则,并且写入.htaccess文件,同时根据规则生成php语言的规则,那么在php程序里根据规则显示页面的不同内容。这种方式的难点在于对htaccess文件的彻透理解和应用以及php正则表达式的灵活运用上。

通过这种方式转化的静态页面的路径有两种表现形式,一种是非常规则的,比如一篇文章,article.php?artid=12,则转化成静态页面可能就是这样:article-do-view-artid-12.html。因为每个页面必须要有动作和对象,这样便于统一管理,也可以表示成这种形式:article/do/view/artid/12.html等等。这种形式只要在htaccess文件中写一句话便可以控制全局,那就是RewriteRule ^([^-]*)-(.*)$ $1.php?$2 。这样,整个规则就只有一个规则,程序里要做的只有对$2号的字符串进行处理,相对简单。第二中形式就相对人性化点,美观点,我们要把连接形式转化为article/12.html 或者 article/hello-world.html 更或者 article/hello-world_page2.html ,这种方式要对每个连接都作处理,如果只给出这种规则,计算机是不能理解的,除非给成 article/(.*)(_page[0-9])\.html 这种规则,那么在处理上就有相当大的难度,因为要把rewrite的规则解析为php的正则并进行替换,还有这些规则必须由熟悉rewrite和php的程序员来写,不利于推广。

静态页面,只要把目录地址保存在数据库里调用,但是有些动态的信息,比如登录信息,文章点击数等需要做动态的改变,这种情况主要通过js和重新生成静态页面来显示.