谷歌为同一页面索引两个URL - 有和没有index.php

时间:2014-08-28 16:25:43

标签: php .htaccess mod-rewrite laravel-4 seo

我是Web开发行业的新手。目前正致力于客户的五个基于内容的网站。这些站点使用Laravel 4设计,并使用无法访问配置的共享主机。我需要从所有文章页面中删除'index.php',并为SEO目的制作干净的URL。我面临两个问题。这些问题在性质上似乎是相似的,因此引用了同一个问题。

对于Addon域 - 我将域的文档根目录更改为Laravel的“public”文件夹。然后在.htaccess文件中添加以下代码,使URL更清晰,没有'index.php'部分

Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?/$1 [L]

虽然如果将URL直接输入浏览器的地址栏,代码仍能正常工作。问题是,现在当我使用 site:mysite.com 在Google.com中搜索我的网站时,它会显示一些网页中没有index.php部分的网页URL中包含index.php的一些页面。最糟糕的是,有些页面出现了两次 - 一次是在URL中使用index.php而第二次没有使用index.php

e.g。搜索结果将包含URLS这样的页面 -

           www.mysite.com/index.php/article-1-content
           www.mysite.com/article-1-content

如果我没错,这会导致内容重复。此外,当我通过具有index.php的URL打开文章页面时,该页面上的所有其他URL(如内部链接和侧栏文章)也会在其URL中显示index.php。我该怎么做才能从URL和谷歌索引中完全删除index.php。请帮忙。

很抱歉这个问题太长了,但我的第二个问题似乎有类似的性质 -

对于主域名我在public_html中添加了整个站点代码,然后将这段代码添加到public_html中的.htaccess文件中以更改文档根目录

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^primarydomain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.primarydomain.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ public/$1 [L]

以及删除公用文件夹的.htaccess文件中的index.php部分的代码 - (与插件域中的相同)。问题是,在Google上搜索时,每个文章页面都会出现两次,其中的网址看起来像这样

  

www.primarydomain.com/article-1-content
  www.primarydomain.com/public/index.php/article-1-content

谷歌也在使用“public / index.php”部分索引网址。我该怎么做才能完全摆脱这些不那么干净的URL。

感谢您容忍如此长的问题:)任何帮助将不胜感激。 问候。

1 个答案:

答案 0 :(得分:0)

这听起来像是规范标签的工作。

只要URL加载,规范标记将完成其余的工作(即您可以指定要使用的URL)。

  

https://support.google.com/webmasters/answer/139066?hl=en