/ /無限ループを回避するためのhtaccess redirectmatch正規表現-regex、.htaccess、redirect

htaccess redirectmatch無限ループを避ける正規表現 - 正規表現、.htaccess、リダイレクト

私はどこかで私のサイトマップに人々を送るが、URLのような不正なリンクを持っています

www.example.com/sitemap.php""abc def

など。これにより、リンクが壊れて表示されます。

不良リンクを探し出す間、ページへのすべてのトラフィックを301処理してクリーンアップするために、次のような301を作成しました。

RedirectMatch 301 ^sitemap.php(.*) http://www.example.com/sitemap.php

しかし、これにより「301が多すぎます」というエラーが表示されますsite.com/sitemap.phpが式と一致し、ループするためです。 (。*)の代わりに使用できる正規表現がありますが、何も存在しない場合は一致しません(つまり、URLが「.php」で終わる場合)。

回答:

回答№1は1

このルールを使用してください:

RedirectMatch 301 ^/(sitemap.php).+ /$1

そして、ブラウザのキャッシュをクリアします。の使用に注意 .+ (1文字以上の任意の文字)の代わりに .* (0文字以上)