0

私のサイトで、特定のphpページが他のphpページの子であるとGoogleが判断するという奇妙な状況が発生しています。たとえば、http://domain.com/page1.php/page5.phpのように表示されるページのGoogleウェブマスターツールでエラーが発生します。page1.phpとpage5.phpの両方がサイトに存在しますが、Googleが一方を他方に連結する必要があると考える理由がわかりません。

このようなリンクを参照すると、page1.phpが読み込まれますが、正しくは読み込まれません。私の目標は、.htaccess(または他の提案)を使用して、追加のページが続く場合に最初のページにリダイレクトすることでした。私はこれについて正しく考えていますか、そして誰かが私がこれを解決するのを助けるために提案を提供できますか?ありがとう!

更新:私の.htaccessファイルの唯一の行は、以前のフォルダー構造から単一のphpファイルにリダイレクトされていますが、これは少なくとも1年間実施されています。例えば:

RedirectMatch 301 ^/widgets/?$ http://firesage.com/widgets.php

Update2:ウェブマスターツールでこの「Soft404」エラーを見つけました:http://domain.com/page2.php/include/include/lookup.php?id= 22。まず、robots.txtを介してインクルードフォルダーを除外します。また、インクルードフォルダがURLに2回リストされているという事実は、非常に疑わしいものです。

4

3 に答える 3

2

通常.htaccess、Googleをリダイレクトするために使用できますが、Googleがこれらの「間違った」リンクを表示する理由を見つけることをお勧めします(質問に対する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]ます。

于 2012-07-04T13:45:44.680 に答える
0

私は.htaccessの専門家ではありませんが、リダイレクトルールが混乱している可能性があります。リダイレクトするには、.htaccessでこれを使用するだけです。

RewriteEngine On
RewriteRule ^some regex$ http://yourdomain.com/page1.php [L]

あなたの.htaccessはそのように見えますか?それであなたの質問を更新してもらえますか?

于 2012-07-04T13:20:50.200 に答える
0

page1.php/の代わりにへのリンクを探しますpage1.php

グーグル(またはブラウザ)がへのリンクをたどるpage1.php/場合、ウェブサーバーは「正しい」ファイルpage1.phpを配信しますが、グーグルはそれがディレクトリであると見なすため、「ディレクトリ」内のインデックスファイルから始まるようにpage1.php(への)相対リンクを解釈します。page2.phppage1.php

于 2012-07-04T13:53:29.190 に答える