很多网站用类似这种形式链接向自己的首页。问题是大部分指向网站首页的外部链接使用的是,因此分散了指向网站的链接权重。注意到这点的站长想要解决他们的内部链接,要从做301转向到。但 是处理不好的话会产生循环转向问题。 当有人输入来到你的网站,互联网DNS系统帮助浏览器找到网站所在的服务器,然后网站服务器怎样决定显示什么给浏览器?它要调用网站服务器硬盘上的一个文件。 没有指定文件时(也就是如上面例子,只指定了域名),服务器调入一个被称为默认文件的文件。这个文件的文件名经常是index.html/index.htm/index.shtml/index.php或者default.asp。 文件名实际上可以任意的,但大部分网站服务器默认设置为某种文件名。很多CMS回显示网站首页的两种形式:和,这就会带来问题。 可能网站所有页面都链接至,但是由于习惯,第三方给你的首页链接大部分指向 。如果搜索引擎看到首页的两个版本并认为它们是单独的文件,就将产生复制内容问题。Google在 解决这个问题方面已经很聪明了,但是最好不要依赖它们。 你可能决定解决方法是使用301转向从转向到http: //www.yourdomain.com/。听起来不错,不幸的是有个大问题。当服务器看到 /index.php请求,然后看到应该301转向到,它就这么做了。但是当它调入http: //www.yourdomain.com/时,要获得默认文件(index.php)就要调入 /index.php,然后服务器又看到你要转向到,这就产生了无限循环。 默认文件转向方法 下面的方法指的是前面index.php的例子。你需要放上你自己的服务器所用的恰当默认文件名。 1.复制index.php内容到另外一个文件。在本例子中我使用sitehome.php。 2.给文件根目录创建一个Apache DirectoryIndex指令,设置为sitehome.php。不要在整个服务器级别设置这个指令,否则其他还需要以index.php为目录默认文件的文件夹会产生问题。 3.在文件根目录的.htaccess文件中放上:DirectoryIndex sitehome.php。或者如果你没有使用每个目录单独的文件,在你的httpd.com文件中放上下面的代码:
<Directory/your/document/root/examplesite.com/> 4.删除原本index.php文件中的内容,插入下面这行代码: <? header("Location:");?> 这个设置使index.php不是目录首页文件(也就是默认文件名)。当有人输入规范化URL() 时强制读取sitehome.php。来自旧链接的对index.php的请求现在被301转向,同时避免可无限循环。 如果你使用CMS,设置完上面这些后,还需要确保所有内容链接都指向规范化URL()。如果因为某 种原因CMS开始指向,循环的问题又会发生,强迫你再做一遍整个过程。 文章由湛江SEO首发,转载请保留! (责任编辑:admin) |