每个页面的索引文件是否有错误的方式来设置网站?

时间:2013-01-14 18:36:52

标签: html seo

我的目标是阻止用户输入.html以访问他们在我们网站上寻找的页面。在其他网站上,我将文件名保留为/pagename.html,用户只能输入/ pagename并加载页面。出于某种原因,我们的服务器设置(GoDaddy Plesk并行服务器)是不可能的,所以我的解决方法是为我想要的每个页面创建一个文件夹,实际文件是/index.html。我的目标已经完成,现在用户不必包含.html来加载页面。现在的问题是Google和SEOmoz报告正在阅读大量重复内容。原因是用户可以键入3个不同的内容来访问同一页面 - 如果包含“www”,则技术上为6:

sitename.com/services
sitename.com/services/
sitename.com/services/index.html

搜索引擎正在以第二种方式显示它(http://sitename.com/services/),如果您在没有“/”的情况下键入它,它会重定向到显示“/”。 SEOmoz说每个页面都有301重定向,以便实现这一目标,但我们从未手动执行过。

我尝试使用从sitename.com/services/到sitename.com/services的重定向创建.htaccess文件,但由于重定向过多,页面无法加载。

我是否打破了一些以这种方式设置的大规则?

请注意,“sitename.com/services/”只是一个页面的示例,我们在这个页面中设置了50页的整个网站。实际网站为http://www.logicalposition.com

3 个答案:

答案 0 :(得分:1)

首选方法是设置服务器以管理URL处理。例如,如果您在Apache服务器上,则可以使用以下建议并创建/更改.htaccess文件以获得所需的效果。

http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

答案 1 :(得分:0)

最直接的方法是使用Apache的.htaccess(如果我没记错GoDaddy允许访问,虽然我可能错了)进行重定向。

请参阅此帖子:https://stackoverflow.com/a/5730126/549346(mods:可能重复?),它会指示您在.htacess文件中放置以下内容:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

答案 2 :(得分:0)

首先,听起来你没有做过基本的腿部工作来减少这种情况。你需要决定你想要www.samplesite.com还是samplesite.com?然后你可以很容易地用.htaccess设置它(见this handy tool)。这意味着最多只有三种变体,而不是6种。

我会接受@Jassons的建议并使用URL处理 - 我的客户中有2个目前使用GoDaddy,并且两者都使用此方法,所以应该完全支持。

一些更有用的URL处理/ htaccess重写链接(尽管注意:设置301重定向需要时间,耐心并仔细监控Web Master Tools上的抓取错误,因此最好使用URL处理!)

http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

极端的例子,但仍然相关:) Handling several thousand redirects with .htaccess

修改强制尾随斜杠

您可以使用重写规则

轻松强制显示尾部斜杠
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?category=$1

我认为你已经完成了部分内容,但你会注意到有一个301重定向标头发送,这意味着当蜘蛛访问你的网站时,他们会更新URL以获得尾随斜线 - 它不会过夜。您可以使用Web Master Tools来加快更改网址的速度。

来源:在this部分网站中,它为您提供了有关其工作原理的详细解释