実際にはエンコードする必要のない括弧やアフォストロフィーなどの「予約されていない文字」であっても、文字をパーセントでエンコードする必要がある動的 URL スキームを使用する PHP アプリがあります。アプリが「間違った」方法でエンコードされたと見なした URL は正規化され、「正しい」エンコードにリダイレクトされます。
しかし、Google やその他のユーザー エージェントは、パーセント エンコーディング/デコーディングを異なる方法で正規化します。つまり、Googlebot がページをリクエストすると、「間違った」URL を要求し、「正しい」URL へのリダイレクトを返すと、Googlebot はフォローを拒否します。リダイレクトし、ページのインデックス作成を拒否します。
はい、これは弊社側のバグです。HTTP 仕様では、サーバーがパーセント エンコードされた文字とパーセント エンコードされていない未予約文字を同じように処理する必要があります。しかし、アプリ コードの問題を修正することは現時点では簡単ではないため、アプリの観点から URL が「適切に」エンコードされるようにする Apache 書き換えルールを使用して、コードの変更を回避したいと考えていました。つまり、アポップストロフィー、括弧などはすべてパーセントでエンコードされ、スペースは+
ではなくとしてエンコードされ%20
ます。
これは、最初のフォームを書き直して、2 番目のフォームで終了する 1 つの例です。
- www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+(Linux)
- www.splunkbase.com/apps/All/4.x/Add-On/app:OPSEC+LEA+for+Check+Point+%28Linux%29
ここに別のものがあります:
- www.splunkbase.com/apps/All/4.x/app:Benford's+Law+Fraud+Detection+アドオン
- www.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+アドオン
ここに別のものがあります:
- www.splunkbase.com/apps/All/4.x/app:Benford%27s%20Law%20Fraud%20Detection%20アドオン
- www.splunkbase.com/apps/All/4.x/app:Benford%27s+Law+Fraud+Detection+アドオン
アプリがこれらの URL の 2 番目の形式のみを認識した場合、リダイレクトは送信されず、Google はページをインデックスに登録できます。
私は書き換えルールの初心者であり、mod-rewrite のドキュメントを読んだところ、mod_rewrite が自動エンコード/デコードを行っていることは明らかでした。
上記のケースを処理するための書き換えルールに関するアドバイスはありますか? 特殊文字の数は多くないので、特殊文字ごとのルールで問題ありませんが、(可能であれば) 単一のルールが理想的です。