-1

次の書き換えルールに問題があります。別のドメインにリダイレクトすることになっている以外の本からコピーしたので、私はそれを正しい方法でやっていると思いました。

次のURLを取得しました:

http://www.domaina.com/some-Text-is-here-B40178.jpg

画像は次のURLにあります。

http://www.domainb.com/imgs/B40178.jpg

これを機能させるには、下の書き換えルールをどのように書く必要がありますか?

RewriteRule ^.*-B([0-9]+)\../$ http://www.domainb.com/imgs/B$1 [L]

4

3 に答える 3

2

ルールに拡張子がないため、一致していません。また、最後に余分な/があるようです。常にjpgの場合は、それを追加できます。または、最後に何かを一致させます。

また、その拡張機能もキャプチャする必要があります。

「jpg」に一致

RewriteRule ^.*-B([0-9]+\.jpg)$ http://www.domainb.com/imgs/B$1 [R,L]

何にでもマッチ

RewriteRule ^.*-B([0-9]+\..+)$ http://www.domainb.com/imgs/B$1 [R,L]

私の好みの方法は、特定の画像タイプに一致することです。

RewriteRule ^.*-B([0-9]+)\.(jpg|gif|png)$ http://www.domainb.com/imgs/B$1.$2 [R,L]

編集あなたが別のドメインにリダイレクトしていたことを見逃しました。Rフラグも必要です。追加しました。

于 2013-01-30T15:55:33.103 に答える
1

次のように、ルールをリダイレクトとしてマークする必要があります。

RewriteRule ^.*-B([0-9]+)\../$ http://www.domainb.com/imgs/B$1 [R,L]

編集:ファイル拡張子にも取り組む必要があります。私は怠惰になり、それらがすべてJPGであると仮定します:

RewriteRule ^.*-B([0-9]+).jpg$ http://www.domainb.com/imgs/B$1.jpg [R,L]
于 2013-01-30T15:52:33.067 に答える
0

結局、リダイレクトを使用しないより良い解決策を見つけました:

 RewriteCond  %{REQUEST_URI}  !^$
 RewriteCond  %{REQUEST_URI}  !^/
 RewriteRule  .*              -    [R=400,L]
 RewriteRule ^.*-B([0-9]+)\.(jpg|jpeg|png|gif|JPG|GIF|PNG|JPEG)$ http://www.domain.com/imgs/B$1.$2 [P,L]`

そのため、URLでは、画像が別のドメインからのものではないように見えます。PはProxyの略です(http://httpd.apache.org/docs/2.4/rewrite/proxy.html

于 2013-02-03T15:26:22.963 に答える