web-dev-qa-db-ja.com

直接画像パスをWebサイトにリダイレクトするにはどうすればよいですか?

最近、私のWordpressウェブサイト上の画像のいくつかが、Google Analyticsによると、最も訪問数の多いページであることに気付きました。画像をクリックするとアクセスできます。その結果、ページは別のタブで開かれました(ライトボックスなどはありません)。これを無効にしたので、右クリックして「新しいタブで画像を開く」と言って、以前と同じ結果を得る必要があります。それでも、私はこれがどのように起こり、直接画像パスにアクセスしている人を画像が存在するページにリダイレクトできるかを知りたいですか?

YoastSEOがこの問題をここで解決していることに気付きました: https://kb.yoast.com/kb/redirect-image-attachment-urls/ しかし、私のために働かない。

2
UserSoUndSo

これは可能ですif各画像にはowningページがあり、それらの間に既知のパターンがあります。

car.jpgという画像があり、ページcar.htmlが所有しているとします。この場合、.htaccessを使用して、参照検出を使用した変換を実行できます。

RewriteCond %{HTTP_REFERER} !^https://www.example.com/.*$  [NC]
RewriteRule ^(.*)\.jpg$ $1.html                            [R=301,L]

つまり、あなたのサイト(www.example.com)のページから画像を読み込むnotは、同じ名前の対応するページへのリダイレクトを取得します。正規表現を^(.*)\.(jpg|png)$に変更するか、post.php?image=$1などのより複雑なURLにリダイレクトすることで、jpgやpngなどの他のタイプの画像も追加できます

これで、car.htmlなどのページに関連しない名前の画像があり、nissan_sentra.pngという画像がある場合、簡単なマッピングができなくなり、リダイレクトテーブルを作成する必要があります。より複雑なだけでなく、維持するのが難しい各ケースについて。

1
Itai