:パス/ciim5/123/456/super_000000.jpg
が要求されたとき、それは何をすべきのApacheの.htaccessリダイレクトファイル
# Rewrite super sized ciim5 images to large
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ciim5/([0-9]+)/([0-9]+)/super_000000\.jpg$ /ciim5/$1/$2/large_000000.jpg [NC,L,R=301]
は、それは301と同じパスにリダイレクトしますが、large_000000.jpg
に仕えなければなりませんさ代わりに。 super_0000000.jpg
とlarge_000000.jpg
は、そのサーバー上の実際の物理ファイルです(実際には、大規模なイメージを公開して大規模にリダイレクトしたい)
私のlocalhost(Apache/2.4.7(Ubuntu) )、それがうまくいった(残りの.htaccessファイルは、プロダクションと同じです)。しかし、プロダクションサーバー(Apache/2.4.18(Ubuntu))にアップロードすると、何もしません。しかし、以前の既存のリライトが機能します(= mod_rewriteが有効になります)。 .htaccessファイルが本番サイトで更新されていることを確認しました。さらに、test.htmlファイルを作成してブラウザで開き、正しいディレクトリにファイルをアップロードしていることを確認しました。
私は今ここに座っています。誰かがプロダクションサーバで上記のように動作しない理由と、リダイレクトを行う方法を教えてください。
編集: パス/ciim5
は、実際にはWebルートにないディレクトリのエイリアスとして設定されています。これは、Webルートの.htaccessファイルが読み込まれていない場合に当てはまりますか?代わりに.htaccessファイルを/ ciim5ディレクトリに置くべきですか?
編集2: ログを有効にすると、このことを示しています
[Thu Dec 01 10:05:48.444800 2016] [rewrite:trace1] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] pass through /ciim5/295/491/super_000000.jpg
[Thu Dec 01 10:05:48.445015 2016] [rewrite:trace3] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] strip per-dir prefix: /static-media/295/491/super_000000.jpg -> 295/491/super_000000.jpg
[Thu Dec 01 10:05:48.445113 2016] [rewrite:trace3] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] applying pattern '^(ciim5/[0-9]+/[0-9]+/)super_000000\\.jpg$' to uri '295/491/super_000000.jpg'
[Thu Dec 01 10:05:48.445204 2016] [rewrite:trace1] [pid 4572] mod_rewrite.c(476): [client *:33116] * - - [*.org.uk/sid#7f767fb185c8][rid#7f767fa9c0a0/initial] [perdir /static-media/] pass through /static-media/295/491/super_000000.jpg
この "ストリップあたり-dirの接頭辞" 事は何ですか? ciim5または静的メディア(ciim5にエイリアスされている実際のフォルダ)を削除するようです。だから私は実際にciim5
の部分を私の書き換えから削除するべきですか?だからここ
書き換えモジュール([LogLevel](https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging))のデバッグログを確認してください。両方のサーバーで。相違点がありますか? –
@DavidDuponchelチェック**編集2 **、ありがとう! – Beebee