私たちのサイトはAngularに基づいているため、ほぼ完全にJavaScriptベースになっているため、Googlebotをクロールするには、静的HTMLスナップショットをGooglebotに提供する必要があります。現時点ではこの実装があります。所定の位置に:
location / {
# Rewrite rules for the Google and Bing bots and other crawlers.
# Serves static HTML from /snapshots when a URL is requested
if ($http_user_agent ~ (Googlebot|bingbot|Screaming)) {
rewrite ^/(.*)$ /snapshots/$1.html break;
}
}
これはほとんどの場合に機能しますが、Googleが次のようなURLを要求した場合:http://site.com/support/contact/
次のように書き換えられます:http://site.com/support/contact/.html
これは明らかに404を返します。これが返されることを確認するために、URLの末尾のスラッシュを削除するように構成を変更する必要があります:http://site.com/support/contact.html
これはnginx構成内からどのように達成できますか?このため、ウェブマスターツールで数百の404エラーが発生しています。
ありがとう!
書き換えをに変更した場合
rewrite ^/(.*)/$ /snapshots/$1.html break;
rewrite ^/(.*)$ /snapshots/$1.html break;
その場合、最初の行はスラッシュで終わる行にのみ一致し、$1
には、先頭と末尾のスラッシュを除いたフルパスが含まれます。 2つ目は、残りのケース(現在機能している)をキャッチします。