Apache を使用してリダイレクトされた URL (.jpg/ .htm/ .gif/) から末尾のスラッシュを削除する

Apache を使用してリダイレクトされた URL (.jpg/ .htm/ .gif/) から末尾のスラッシュを削除する

古いホストからリダイレクトされている Web サイトがあります。古いホストのリダイレクトを変更する機能がありません。

問題は、リダイレクトが適切でない場合に末尾のスラッシュを追加していることです。例:http://example.com/picture.jpg/またはhttp://example.com/page.html/

そのため、サーバーは 404 を返します。

理想的には、古いサイトからのリダイレクトを修正したいのですが、できません。

URL の末尾のスラッシュを削除する方法はありますか? これは複雑ではないサイトです (単純な HTML のみ、スクリプト言語などはありません)。

調べてみましたが、既存の解決策は見つかりませんでした。

答え1

.jpgファイル拡張子 ( 、、など)で終わる URL から末尾のスラッシュを削除するには、次のようにします.html.png

RewriteEngine On
RewriteRule ^/?(.+?\.[a-z]{2,4})/$ /$1 [R=302,L]

正常に動作することをテストした後でのみ、302 (一時的) を 301 (永続的) に変更します (キャッシュの問題を回避するため)。

アップデート:http は https にリダイレクトされ、https は奇妙な末尾のスラッシュを書き換えました。

これらのリンクがすべて HTTP のみ(HTTPS ではない)にインバウンドしている場合は、代わりに HTTP vHost でのみこのリダイレクトを実行し、HTTPS にも直接リダイレクトするのが合理的です。例:

RewriteRule ^/(.+?\.[a-z]{2,4})/$ https://example.com/$1 [R=302,L]

(ただし、HTTPS の vHost 内にある場合は、すべてのリクエストがキャッチされます。)

関連情報