我是新的Web开发的行业。目前正在研究一个客户的五个基于内容的网站。这些网站使用Laravel 4进行设计,并使用无法访问配置的共享主机。我需要从所有的文章页面删除“的index.php”,使他们的搜索引擎优化的目的干净的URL。我面临两个问题。这些问题在性质上似乎是相似的,因此在同一问题中引用了这两个问题。谷歌索引两个网址可以在同一页 - 有和无的index.php
对于插件域 - 我将域的文档根目录更改为Laravel的“公共”文件夹。然后添加下面的代码在.htaccess文件,使清洁的网址不带“的index.php”部分
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?/$1 [L]
但如果URL被直接输入到浏览器的地址栏的代码工作正常。问题是,现在,当我搜索使用网站我在Google.com网站:mysite.com它显示某些页面没有,而一些在用的index.php页面的URL在index.php部分URL。最糟糕的是,一些页面出现两次 - 一次在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。我应该怎么做才能彻底删除网址和谷歌索引中的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部分 - (相同于插件域)。问题是,在谷歌搜索每一个文章页面的URL看起来像这样
www.primarydomain.com/article-1-content
www.primarydomain.com/public/index出现两次。 php/article-1-content
谷歌正在用'public/index.php'部分为URL编制索引。我应该怎么做才能彻底摆脱这些不那么干净的URL。
感谢您容忍这么长的问题:)任何帮助将不胜感激。 此致敬礼。
每当URL匹配'index.php'您应该执行'301'重定向。最终,Google会删除所有与index.php相关的链接,并且不会因重复内容而受到处罚。 – Ohgodwhy 2014-08-28 16:29:07
感谢@Ohgodwhy如此快速的回应。我会经历301次重定向。我对301重定向有一点疑问。我曾经在某处看到过多的重写和重定向会影响网站的性能。由于我正在处理的这些网站将逐渐拥有数千个内容页面。将这样的重定向计为每个页面的单个重定向或不同的重定向。另外,一旦我将301重定向代码添加到.htaccess,我是否需要我在问题中提到的重写代码,或者我可以将其删除。 – kruxatur 2014-08-28 16:53:15
我怀疑你会看到在这个阈值的任何重大打击,因为'301'重定向只是产生一个'apache forker进程'来处理请求,然后将其传递到一个新的页面,所以PHP解释器是从来没有跑。你可能会谈论成千上万的301人,并拥有庞大的访客群。你可以保留上面的代码。 – Ohgodwhy 2014-08-28 16:55:18