0

PHPクエリのURLを実際の画像に書き換えるにはどうすればよいですか?

http://localhost/img.php?image=winter.jpgをhttp://localhost/img/winter.jpgに書き換えてほしい画像名は動的に変化します。

私はこのように試しましたが、うまくいきません。

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.+img\.php\?.*?image\=(.+)[$&] ./img/$1 [NC]

ありがとう。

[アップデート]

http://localhost/img.php?image=winter.jpgにアクセスすると、次のテキストがログ ファイルに追加されました。ブラウザーに、「オブジェクトが見つかりません! 要求された URL がこのサーバー上で見つかりませんでした。URL を手動で入力した場合は、スペルを確認して、もう一度やり直してください。」というメッセージが表示されます。

127.0.0.1 - - [<time>] [localhost/sid#975148][rid#4d09cb8/initial] (3) [perdir Z:/xampp/htdocs/] strip per-dir prefix: Z:/xampp/htdocs/img.php -> img.php
127.0.0.1 - - [<time>] [localhost/sid#975148][rid#4d09cb8/initial] (3) [perdir Z:/xampp/htdocs/] applying pattern '^.+img\.php\?.*?image=(.+)[$&]' to uri 'img.php'
127.0.0.1 - - [<time>] [localhost/sid#975148][rid#4d09cb8/initial] (3) [perdir Z:/xampp/htdocs/] pass through Z:/xampp/htdocs/img.php

[アップデート]

エラーログには、

[<time>] [error] [client 127.0.0.1] script 'Z:/xampp/htdocs/img.php' not found or unable to stat

そこで、という名前のダミーファイルを作成しimg.php、エラーが表示されなくなったと述べました。ダミーファイルは必要ないと思いました。http://localhost/img.php?image=winter.jpgにアクセスすると、ダミーの PHP ファイルの内容のみが表示されるようになりました。

[NC,L]、を試しましたが[R,NC][R,NC,L]どれも機能しませんでした。

4

2 に答える 2

2

これはうまくいくはずです。ブラウザの再起動が必要になる場合があります。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^image=(.*)$
RewriteRule ^.*img\.php$ ./img/%1 [NC,QSA]

関連:画像 + 文字列の mod rewrite ルールを Imagefolder に書き換える

于 2012-10-08T02:41:10.377 に答える
1

リダイレクトしていません。Redirect フラグを追加[R]し、最後に試してください:

RewriteRule ^.+img\.php\?.*?image\=(.+)[$&] ./img/$1 [R,NC]
                                                      ^ 
于 2012-10-07T13:17:00.083 に答える