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