我是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。
感谢您容忍如此长的问题:)任何帮助将不胜感激。 问候。
答案 0 :(得分:0)
这听起来像是规范标签的工作。
只要URL加载,规范标记将完成其余的工作(即您可以指定要使用的URL)。