最常见的方法是使用服务器的URL重写模块,在LAMP(Linux+Apache+MySQLPHP)服务器上一般使用mod rewrite模块,Windows 服务器也有功能相似的ISAPIRewrite等模块。以LAMP服务器为例,要想把URL:
http://wwwdomain.com/products.php?id=123
静态化为:
http://www.domain.com/products/123
需要启用服务器mod_rewrite模块,然后在.htaccess 文件中写入如下代码
RewriteRule /products/([0-9]+) /products.php?id-$1
URL重写代码基于正则表达式,每个网站的动态 URL结构不同,服务器设置也能不同,代码也就不同。正则表达式的写法比较复杂,千变万化,通常需要程序员编写在写URL静态化代码时必须非常小心,错了一个字符,多了一个斜杠等微小的不同,可能造成灾难性的后果。我本人就遇到过这样的案例
严格来说,这里所说的 URL静态化应该称为“伪静态化”,也就是说服务器上还是不存在相应的 TM,文件,用户访向时还是动态生成页面,只不过通过可迁赛上还展在网址看起来像是静态的。也有的 CMS系统可以实现真正静态化,需机增法产高技术使后,系统会自动生成真实存在的静态的TML,文件。对索引聚来说,真在的而美文伪静态没有区别