2012-03-14 15 views
7

に画像ファイルを書き換えるの.htaccess私は.htaccessで今のところ持っており、これは将来的に動作するはずです:は、ここでPHPスクリプト

RewriteEngine On 

RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

質問です:

どのように私はこの書き換え/tmp/some_image.png -> /image.php?file=some_image.pngを作ることができます

私は自分のルールを作りようとしましたが、成功しませんでした。

ありがとうございました。

答えて

13

/tmpはWebサーバーからアクセスできるディレクトリですか?私はそれが別の/ tmpフォルダであり、実際の/ tmpのサーバではなく、セキュリティ上のリスクであると考えています。とにかく

画像は、物理的なファイルであるならば、あなたはHTTPSを強制すると、それはファイルやディレクトリだ場合の条件を確認する前に、あなたの書き換え後にこれを配置する必要があります。

RewriteRule ^/tmp/([^\.]+)\.png$ /image.php?file=$1.png [NC,L] 

あなたに他の拡張子をチェックすることができうまく:あなたは気にしない場合

RewriteRule ^/tmp/([^\.]+)\.(png|jpg|gif)$ /image.php?file=$1.$2 [NC,L] 

するか、

RewriteRule ^/tmp/(.*)$ /image.php?file=$1 [NC,L] 
(。すべてがあなたのTMPフォルダ内の画像ですが、私はこれをお勧めしません)

物理ファイルでない場合は、ルールの最後にこれらのいずれかを入れることができます。

+0

おかげで、偉大な答えに行きます! – user973254

+0

このルール 'RewriteRule ^/tmp /([^ \。] +)\。(png | jpg | gif)$ /image.php?file=$1.$2 'は画像にそのファイル名に '.'を付けます。 'file.name.jpg' –

+0

あなたが許可したい場合に' RewriteRule ^/tmp /(。+)\。(png | jpg | gif)$ index.php?file = $ 1. $ 2 [NC、L] 'ファイル名に複数の '.' –

関連する問題