Webサイトにはproducts/フォルダーがあり、その中には大文字のphpファイルがあります。
例: www.example.com/products/BIT-Defendar.php
現在、このURLは何年もの間、そして検索エンジンのいたるところに存在しています。プロダクトマネージャーのミスでした。
しかし、私はこれを修正したいのですが、小文字のURLだけが必要です。
これで問題は解決しますか?CheckSpelling On
CheckCaseOnly On
(1)
そして、上記とは何が違うのか: (2)
RewriteMap tolowercase int:tolower
RewriteRule ^(.*)$ ${tolowercase:$1}
(1)を使用すると、すべてが機能します。URLを小文字または大文字で要求します(ただし、検索エンジンに問題がありますか?)
(2)を使用する場合、 products/フォルダー内のすべてのファイルの名前を小文字に変更する必要があります。
- - 編集 - -
私が使用するときRewriteRule
、URLが大文字の場合、ドメインルートに転送されます。使用する場合は、すべて問題CheckSpelling
ありません。CheckCaseOnly
私はこれでテストしました 、そして私は得ます:
RewriteCond %{REQUEST_URI} [A-Z]
-この条件が満たされました
RewriteRule (.*) ${tolowercase:$1} [R=301,L]
-このルールは満たされました。新しいURLはhttp://www.example.com/${tolowercase:products/BIT-Defendar.php }です。
-RewriteRuleオプションのRが原因で、テストが停止します。リダイレクトはステータスコード301で行われます
私のセットアップhttpd.conf
:
<VirtualHost *:80>
RewriteMap tolowercase int:tolower
</VirtualHost>