SEO利器——动态页面静态化的方法
SEO有个很严肃的问题,就是关于动态页面与静态页面的问题。搜索引擎Spider总是喜欢.html后缀的URL,因为它看起来稳定像是个老老实实的静态的东西,而像.action?param1=xx¶m2=yyy或者任何以jsp,asp,php等应用动态网页技术的URL,spider貌似不是很喜欢,这个问题Google同学比百度同学在态度上貌似要好些(无从求证,不耐的话直接忽略此句)。
那么在构建网站的时候我们会使用各种动态请求,甚至Ajax技术(后者更容易让搜索引擎Spider迷惑,因为它会使用javascript动态改变我们网站的DOM结构,Spider会直接忽视我们的网站内容,导致Keyword密度降低,SEO变差等等问题,这和静态之间是个博弈,At right place do right thing才是设计人员该做的)。为了欺骗搜索引擎(其实我们很诚实,只不过使用了一点小trick),我们可以把URL静态化,也可以说成动态页面静态化。
例如某网站的URL都是http://www.example.com/site/xxxx.html,xxxx为数字id,而后台发送给应用服务器的实际请求是不是detail.action?siteId=xxxx?而前台用的xxxx.HTML显示出来利于SEO,这个配置可以在web app里做的URL Rewrite吧。也可以在apache HTTP 服务器里配置的吗。下面分别说明:
1. web app里做的URL Rewrite
UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。
2. Apache HTTP 服务器里配置伪静态URL
配置方法一:
1. 加载rewrite模块
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2. 将您的主机的<Directory></Directory>中的AllowOverride None改为AllowOverride All
3. 在你的网站的目录下建立.htaccess文件,并建立如下内容
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)site/([0-9]+)\.html$ $1/detail.action?siteId=$2
#其中RewriteRule是例子,意思为在浏览器中输入的是show-1-2.html,而实际访问的却是show.php?itemid=1&page=2
4. 重启apache2
配置方法二:
1. 打开 apache 的配置文件 httpd.conf 。
2. 将#loadmodule rewrite_module modules/mod_rewrite前面的#去掉
3. 在 httpd.conf中添加:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)site/([0-9]+)\.html$ $1/detail.action?siteId=$2
</ifmodule>