最近在对一个thinkphp建的网站进行SEO优化,连接越短越好,关键词页面描述越准确越好,等做了很多优化方面的事。
主要针对百度已经收录的文章,但百度收录文章连接已经在不好进行路由处理的情况下,针对百度收录的相关文章连接进行优化:
这里有一篇百度已经收录的文章,比如文章的连接是这样的(www.dianthink.com/index.php/Home/Article/detail/id/198.html)。
(1)、最先考虑到的是去除路径中的(index.php):
1、在Apache配置文件httpd.conf 中 去掉了mod_rewrite.so 前面的符号#。
2、AllowOverride None 修改为了AllowOverride All
3、URL模式是重写rewrite模式。
4、修改.htaccess规则
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
(2)、thinkphp3.2去除模块Home,这个比较简单,只需要在入口文件加上:define('BIND_MODULE', 'Home'); 就可以了。
(3)、剩下的只需要优化Article/detail/id/198.html。只要把路由写好就行,比如优化后的地址是:www.dianthink.com/detail/id/198.html
开启thinkphp路由配置:
'URL_ROUTER_ON' => true,
'URL_ROUTE_RULES'=>array(
'detail/:id\d'=>'Article/detail',
),
(4)、说了以上的可能不是你需要的,以上是伪静态路由配置的过程。
(5)、上面讲过了,加入www.dianthink.com/index.php/Home/Article/detail/id/198.html此条连接百度已经收录。
现在站点的文章地址都是www.dianthink.com/detail/id/198.html这种的,那当然百度打开www.dianthink.com/index.php/Home/Article/detail/id/198.html我们需要调转到www.dianthink.com/detail/id/198.html。
为了很短时间内不影响百度收录和排名,我们就可以直接错301跳转。
(6)、好了,那就直接在程序中处理url,把不需要的用字符串替换函数直接删除,301跳转到新的地址即可。
(a)、下面是获取url的函数,度娘一哈很多,要么自己写个也行。
// 说明:获取完整URL
function getPageUrl($is_type = ''){
$pageUrl = 'http';
if ($_SERVER["HTTPS"] == "on"){
$pageUrl .= "s";
}
$pageUrl .= "://";
if ($_SERVER["SERVER_PORT"] != "80"){
$pageUrl .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
}else{
$pageUrl .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
return $pageUrl;
}
(b)、下面是php字符串替换相关函数和php301跳转。
$url_s = getPageUrl();
$url_s = strtolower($url_s);
if(substr_count($url_s, 'index.php/Home/Article/') == 1){
$replace_str = 'index.php/Home/Article/';
if(($position=strpos($url_s,$replace_str))!==false){
$leng=strlen($replace_str);
$url=substr_replace($url_s,'',$position,$leng);
Header("HTTP/1.1 301 Moved Permanently");
header('Location: '.$url);
exit();
}
}
发表评论 取消回复