我的网站上发生了一个奇怪的情况,谷歌认为某些php页面是其他php页面的子页面。例如,我在Google网站站长工具中收到的错误显示为:http://domain.com/page1.php/page5.php。 page1.php和page5.php都存在于网站上,但我无法弄清楚为什么谷歌认为应该将其连接到另一个。
浏览到这样的链接会加载page1.php,但不正确。我的目标是使用.htaccess(或其他建议),如果跟随其他页面,只需重定向到第一页。我是否正确地思考这个问题,有人可以提供建议来帮我解决这个问题吗?谢谢!
更新:我的.htaccess文件中的唯一行是从以前的文件夹结构重定向到单个php文件,但这已经存在了至少一年。例如:
RedirectMatch 301 ^/widgets/?$ http://firesage.com/widgets.php
Update2:我刚在网站管理员工具中发现此“软404”错误:http://domain.com/page2.php/include/include/lookup.php?id=22。首先,我通过robots.txt排除了include文件夹。并且包含文件夹在url中列出两次的事实是非常可疑的。
答案 0 :(得分:2)
通常您可以使用.htaccess
重定向Google,但我建议您找出Google看到这些“错误”链接的原因(s。Jeroen对您的问题的评论)。这是启动.htaccess
,直到找到原因为止。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Options +FollowSymLinks
# every page on its own
RewriteRule ^page1.php/(.*)$ /page1.php [R=301,L]
RewriteRule ^page2.php/(.*)$ /page2.php [R=301,L]
# or in general maybe the following to replace all of the above, if you think it'll fit
# RewriteRule ^([^/.]+)\.php/(.*)$ /$1.php [R=301,L]
</IfModule>
<强>更新强>
如果您还需要传递任何可能的GET
参数,只需添加QSA
标记,使其变为[R=301,L,QSA]
。
答案 1 :(得分:0)
我在.htaccess上根本不是专家,但也许你的重定向规则很混乱。 要进行重定向,只需在.htaccess中使用它:
RewriteEngine On
RewriteRule ^some regex$ http://yourdomain.com/page1.php [L]
你的.htaccess看起来像那样吗?你能用它来更新你的问题吗?
答案 2 :(得分:0)
查找指向page1.php/
的链接,而不是page1.php
。
如果谷歌(或浏览器)跟随指向page1.php/
的链接,则网络服务器将发送“正确”文件page1.php
,但谷歌会认为page1.php
是一个目录,因此解释相对链接(到page2.php
),就像它们从“目录”page1.php
中的索引文件开始一样。