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