.htaccess を使用すると、URL を小文字に変換できますが、大文字のエンコードは許可されますか?
現行ファイル:
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].* [OR]
RewriteCond %{QUERY_STRING} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}}?${lc:%{QUERY_STRING}} [L,NE,R=301]
RewriteRule ^client/(.*) client.php?q=type:$1 [QSA]
- ブラウザ: domain.com/client/city?mf[]=liverpool (正解)
- Googlebot: domain.com/client/city?mf%5d%5b=liverpool (301、不正解)
[NE] を削除すると、結果の URL は二重にエンコードされます。
- ブラウザー: domain.com/client/city?mf%255b%255d=liverpool (200、ただし誤った結果)
- Googlebot: domain.com/client/city?mf%255b%255d=liverpool (200、しかし不正確な結果)
望ましい出力:
- ブラウザ: domain.com/client/city?mf[]=liverpool (正解)
- Googlebot: domain.com/client/city?mf%5D%5B=liverpool (200、正解)
以前のサイトでは大文字と小文字が混在していて、組み合わせが多すぎて管理できないため、RewriteMap を使用して小文字を強制しています。スレッドのレビューに丸一日を費やしましたが、問題を特定できないようです..または、おそらく私はこれを間違った方法で見ています.
ありがとうございました。