オプションFetch as Googleを使用すると、次の問題が表示されます
duplicate content meta title
the story of....
/lifestyle/serialul-scorpion-inspirat-dintr-o-poveste-adevarata-a-lui-walter-o-brien.php
/lifestyle/serialul-scorpion-inspirat-dintr-o-poveste-adevarata-a-lui-walter-o-brien
Descoperă topul 10 a celor mai friguroase locuri din lume
/travel/descopera-top-10-care-sunt-cele-mai-friguroase-locuri-din-lume.php
/travel/descopera-top-10-care-sunt-cele-mai-friguroase-locuri-din-lume
この事実は、PHP拡張を削除した後に発生しました... htaccessを使用して
#remove the php extension
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
既存のURL構造を変更する場合、古いURL(おそらくインデックスが作成され、リンクされている)を新しいURLにリダイレクトする必要があります。 (SEOとユーザーエクスペリエンスのために。)
あなたの場合、古いURL(.php
拡張子を持つ)-インデックスが作成されている-は引き続きアクセス可能で、.php
拡張子のないURLと同じコンテンツを返します。したがって、重複コンテンツ-同じコンテンツを返す2つの異なるURLがあります。
既存のディレクティブ内部的に書き換える同じURLへの拡張なしURLであるが、.php
拡張子を持つ。これらのディレクティブの前に、外部リダイレクト.php
ファイルに対するすべてのリクエストを拡張なしURLに送信する必要があります。ただし、書き換えループには注意する必要があります。書き換えループを防ぐために、THE_REQUEST
(最初のリクエストのURLのみが含まれる)をチェックできます。例えば:
RewriteEngine On
# Redirect old URLs to new
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ .*\.php\ HTTP/
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (.*)\.php$ /$1 [R=301,L]
上記は、すべてのrequestedが実際のファイルとして存在する.php
で終わるURLに対して、redirect同じURLから.php
拡張子を除いたものになります。
既存のディレクティブが続きます:
# Rewrite new (extensionless) URLs to the actual file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [L]
文字クラス内のドット(.
)をエスケープする必要はありません。文字クラス内では、ドットはリテラルドットです。不要であると思われるNC
フラグを削除しました。 (あなたのコメントも変更しました...これらのディレクティブは「PHP拡張機能を削除」せず、追加し直します!アプリケーションのリンクの.php
拡張機能は既に削除されていると思われます。現在は動作しません。)
URLの使いやすさを維持できる、はるかに単純なソリューションがあります。 .htaccessコードは次のとおりです。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*).php/?$ [NC]
RewriteRule ^(.*)/?$ /? [R=301,L]
つまり、末尾のスラッシュの有無にかかわらず、拡張子が.phpであるドメインのすべてにアクセスしようとするゲストは、ホームページにリダイレクトされます。私は自分のサイトでこの考えを使用して、潜在的なハッカーを怒らせます。
次に、Googleでファイル拡張子のないわかりやすいURLのインデックスを作成します。これで問題ありません。重複コンテンツの問題はありません。
私の方法の唯一の注意点は、URL(PHP拡張のあるものとないもの)がまったく同じコンテンツを返し、PHPファイルが更新されないPHPファイルが多数ある場合、私の方法はサイトにアクセスするゲストを引き起こすホームページからやり直すためのphp拡張機能。
繰り返しになりますが、ホームページにニュースを投稿し、ホームページを介してサイトの更新されたセクション(更新されたurl)をゲストに広告し、ゲストが最初にホームページにアクセスすると、私のアイデアは完璧です。
ポイントは、2つのURLがまったく同じコンテンツを返す場合、これらの条件の少なくとも1つが当てはまることを確認することです。
<link rel="canonical" href="x">
が含まれています。 「x」は、ページの元のコピーのURLに置き換えられます。<meta name="robots" content="noindex">
が含まれています。私はこれを頻繁に使用する傾向があります。