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

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

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

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

Options -MultiViews
RewriteEngine On

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

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

例如搜索结果将包含具有这样 URL 的页面 -

           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]

还有用于删除公共(public)文件夹的 .htaccess 文件中的 index.php 部分的代码 -(与插件域中的相同)。问题是在谷歌搜索时,每篇文章页面都会出现两次,URL 看起来像这样

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

google 也在为带有“public/index.php”部分的 URL 编制索引。我应该怎么做才能完全摆脱这些不太干净的 URL。

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

最佳答案

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

只要加载 URL,规范标签就会完成剩下的工作(如果您可以指定要使用的 URL)。

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

关于php - 谷歌索引同一页面的两个 URL - 有和没有 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25553616/

相关文章:

php - 我的 http ://localhost/redirecting to www. localhost.com

php - 在实体中创建一个方法,在调用它时执行延迟加载

php - 我应该如何确定 Perl 中时区的下一个夏令时 (DST) 转换?

apache - RewriteCond 范围

php - fatal error register_globals已禁用

.htaccess - 如何在 .htaccess 中有两个不同的自定义错误页面?

PHP 更新用户帐户详细信息未显示错误但帐户详细信息未更新

php - 在 php 中按 exif 数据对图像进行排序

apache - 尝试为丢失的文件强制使用状态代码 200 的 RewriteRule 重定向

apache - 有人可以在正确的方向上提示我使用 mod_rewrite 吗?