末尾のスラッシュを持つ RewriteRule

末尾のスラッシュを持つ RewriteRule

末尾のスラッシュの有無にかかわらず、一部のリンクをリダイレクトする必要があります。

www.domain.con/foo   → www.domain.com/redirect(動作中)
www.domain.com/foo/www.domain.com/redirect(動作しない)

私はこのルールを試してみました.htaccess

RewriteRule (.*)/foo/$ http://www.domain.com/redirect$1 [L,R=301]

答え1

www.domain.com/fooまたはをリダイレクトするには、疑問符()を使用して末尾のスラッシュ選択を一致させる必要がwww.domain.com/foo/あります。www.domain.com/redirect/?

RewriteRule ^foo/?$ http://www.domain.com/redirect [L,R=301]

答え2

RewriteRule ^foo/?$ http://www.domain.com/redirect [L,R=301]

これは正しい解決策ですが、変数はページごとに渡されません。キャッシュに問題がある場合は、次を使用することをお勧めします。https://httpsstatus.io/リダイレクト情報をキャッシュしているようには見えません。リダイレクトを確認してください。さらに、301の代わりに302を使用してテストすることで、ブラウザがキャッシュされたページの場所にこだわりを放棄するのを防ぎます。

関連情報