一、URL为什么要静态化
所谓静态URL,就是指不带有“?”、“=”“&”“php”'asp'等字符的URL。换句话说,不带有任何参数的URL,就是静态URL。而静态URL之外的就是动态URL,也就是带有参数的URL。
目前,大多数网站都是数据库驱动的,网页是由程序实时生成的,而不是在服务器上有一个静态的HTML文件。当用户访问一个网址时,程序根据URL中的参数调用数据库数据,并实时生成页面内容。因此,动态页面对应的URL的原始状态也是动态的,包括问号、等号和参数。
更麻烦的是,有时有些参数可以是任意值,服务器可以正常返回页面,尽管内容都相同或非常相似。例如,如果URL中的参数1234更改为5678或其他数字,服务器可能也会返回200状态代码。
所以,在以前,搜索引擎要想把动态URL完全包含在站点页面中,站长就需要将动态URL转换为静态URL。
二、怎样静态化URL
最常见的方法是使用服务器的URL重写模块,在LAMP (Linux十Apache MySQL PHP)服务器上一般使用mod_rewrite模块,Windows服务器也有功能相似的ISAPI Rewrite等模块。
以LAMP服务器为例,要想把URL :
http://www.xxxxx.com/products.php?id=123
静态化URL为:
http://www.xxxxx.com/products/ 123.html
需要启用服务器mod_rewrite模块,然后在.htaccess文件中写入如下代码:
RewriteRule /products/([0-9] ) /products.php?id=$1
URL重写代码基于正则表达式,每个网站的动态URL结构不同,服务器设置也可能不同,代码也就不同。正则表达式的写法比较复杂,千变万化,通常需要程序员编写。在写URL静态化代码时必须非常小心,错了一个字符,多了一个斜杠等微小的不同,都可能造成灾难性的后果。
严格地说,这里提到的URL静态化应该称为“伪静态”,即服务器上没有相应的HTML文件,页面在用户访问时仍然是动态生成的,但是URL重写技术使URL看起来是静态的。有些CMS系统可以是真正静态的。当站长添加文章或产品后,系统会自动生成真正的静态HTML文件。对于搜索引擎来说,真静态和伪静态没有区别。
以上就是《URL静态化》的全部内容,感谢阅读,希望对你有帮助!