日期:2012-08-16 浏览次数:20657 次
我在写晋远信息网(www.geofuture.net)时没有考虑到URL如何面向搜索引擎优化,完成了以后才开始优化的。这时要考虑一方面要静态的URL,一方面要尽量保持原有的程序不变以便于以后维护,所以就采用url_rewrite的方法。下面是httpd.conf中相应的部分
<VirtualHost *:80>
DocumentRoot /home/geofuture
ServerName www.geofuture.net
ServerAlias *.geofuture.net geofuture.net *.cic123.com
DirectoryIndex index.files index.html index.php
RewriteEngine On
#RewriteLog logs/rewrite.log
#RewriteLogLevel 9
#RewriteRule / http://geofuture.vicp.net/ [L]
RewriteCond %{REQUEST_FILENAME} index.files [OR]
RewriteCond %{REQUEST_FILENAME} error.files [OR]
RewriteCond %{REQUEST_FILENAME} cat.files [OR]
RewriteCond %{REQUEST_FILENAME} area.files [OR]
RewriteCond %{REQUEST_FILENAME} info.files [OR]
RewriteCond %{REQUEST_FILENAME} topic.files [OR]
RewriteCond %{REQUEST_FILENAME} post.files [OR]
RewriteCond %{REQUEST_FILENAME} profile.files [OR]
RewriteCond %{REQUEST_FILENAME} userinfo.files [OR]
RewriteCond %{REQUEST_FILENAME} cert.files [OR]
RewriteCond %{REQUEST_FILENAME} revise.files [OR]
RewriteCond %{REQUEST_FILENAME} review.files [OR]
RewriteCond %{REQUEST_FILENAME} feedback.files [OR]
RewriteCond %{REQUEST_FILENAME} keyrank.files [OR]
RewriteCond %{REQUEST_FILENAME} rss.files
RewriteRule ^(.+?)\Q(.*)$ $1=$2 [N]
RewriteRule ^(.+?)ZZ(.+)$ $1&$2 [N]
RewriteRule ^(.+?)\.files(.*)$ $1.php$2 [N]
RewriteRule ^(.+?)\.php(/|&)(.+).html$ $1.php?$3 [L]
ErrorDocument 400 /error.php?status=400
ErrorDocument 401 /error.php?status=401
ErrorDocument 403 /error.php?status=403
ErrorDocument 404 /error.php?status=404
ErrorDocument 405 /error.php?status=405
ErrorDocument 408 /error.php?status=408
ErrorDocument 410 /error.php?status=410
ErrorDocument 411 /error.php?status=411
ErrorDocument 412 /error.php?status=412
ErrorDocument 413 /error.php?status=413
ErrorDocument 414 /error.php?status=414
ErrorDocument 415 /error.php?status=415
ErrorDocument 500 /error.php?status=500
ErrorDocument 501 /error.php?status=501
ErrorDocument 502 /error.php?status=502
ErrorDocument 503 /error.php?status=503
ErrorDocument 506 /error.php?status=506
</VirtualHost>
我只把以内容为主的栏目优化了,至于登录和搜索等部分保持不变,因为这些部分也是搜索引擎不关心的。同时,一些常见的状态码(HTTP Status)也有相应的静态页面。上面只修改了外来请求的URL,而程序生成的URL通过下面的代码实现:
<?php
//-------------- SECTION NAME -----------------------------------
// 动态URL改写成静态
function