伪静态常见问题解答
不懂建站却略懂的朋友一定知道伪静态这个词吧,静态的页面相对动态利于优化,但是伪静态的好处、伪静态的规则怎么写、伪静态是什么意思可能还是有很多朋友不知道。
这是伪静态
伪静态是什么意思?
伪静态页面相对纯静态页面来讲,通常我们是为了利于优化,将文章生成静态页面,但是有的朋友想让自己的页面实时生成新的数据,所以运用了动态的脚本,但是又不想损失了搜索引擎友好这一面,所以产生了伪静态这一技术。既实现了实时展现自己网站页面的最新数据,同时又能够利于搜索引擎优化。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
静态与动态的区别
静态页面:我们可以从RUL上面看出,伪静态是以html、htm以及目录结尾的为静态页面。
动态页面:不规则的URL,其中URL中包含符号、结尾包含其他后缀如:index.php、index.asp等。
伪静态页面:伪静态页面只是把URL伪装成静态页面,但实际页面还是为动态页面,之所以伪装成静态页面仅为利于搜索引擎优化。
小结:在的角度考虑,伪静态和静态页面的功能是相同的,但是伪静态本质上还是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
伪静态的好处
从URL的角度考虑,我认为伪静态后的页面更利于用户来记忆,甚至很多网站都是伪静态URL均是根据文章的标题来拟定,虽然是一个小细节,但是从SEO角度及用户体验的角度考虑,这是一个不小的改动,当然,伪静态不仅是这一点好处,还有以下几点。
利于搜索引擎:搜索引擎对于静态页面更容易爬取,搜索引擎也更喜欢静态页面,因为静态页面调用的数据仅为文件数据,而没有经过数据库来调用数据,所以在网站打开速度方面静态页面更有优势,我们模拟成静态页面,搜索引擎也会误以为你的网站为静态页面。
方便用户记忆:如果是一个动态页面,在URL上面我们可以到处看到不一样的符号,用户肯定是无法记忆,如何我们使用伪静态的URL同时根据页面的内容来设定URL,那么用户很快就可以记住你的URL,同时记住你的。
伪静态的坏处
如同的好处与坏处,其实任何一个东西,均有利有弊,所以伪静态也类似,其实伪静态的坏处个人感觉超过了好处,但是由于现在的服务器配置相对以前较有优势,所以伪静态的坏处慢慢的弱化了,但是不表示这些坏处并不存在。
加大服务器压力:动态页面所消耗的资源相对静态消耗的服务器资源要多,而伪静态就是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
打开慢:伪静态不但没有提高网站打开速度,因为伪静态仍然要在数据库读取数据,并且还要额外重写URL,所以还会减慢网站打开速度。
重复页面:做完伪静态后,你会发现,大部分的网站均可以通过动态URL和伪静态的URL同时打开,这样的页面就是重复页面,这里建议使用robots文件屏蔽动态页面。
需服务器支持:做过伪静态的朋友一定知道,很多服务器都不支持伪静态,特别是香港的空间,所以并不是所有的服务器都支持伪静态的,这无形中又增加了成本。
伪静态方法
不是每一个程序的伪静态规则都是同样的方法,但大部分的服务器均支持htaccess文件,我们可以利用.htaccess文件在线生成器来制作自己网站的伪静态,同时狼蚁网站SEO优化是我提供的几个主流程序的伪静态规则。
Discuz伪静态htaccess规则
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为您的目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
wordpress伪静态
[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /tag/(.*) /index\.php\?tag=$1
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L] # For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L] RewriteRule /(.*) /index.php/$1 [L]