3

元の画像のURL(または部分的なパス)を保持しながら、すべての画像リクエストを1つのフォルダーからsome.phpファイルに書き換える方法を探しています。

それで、

example.com/folder/img/test.jpg

次のように書き直されます

example.com/folder/some.php?img=img/test.jpg

(これが最善のアプローチですか?)

私は正規表現に精通していないので、とても感謝しています:)

注:私は以前にいくつかの解決策を試しましたが、どれもうまくいきませんでした。また、 CentOS環境でApache2.0を実行しています

4

3 に答える 3

4

mod_rewriteと.htaccessを有効にしてからhttpd.conf、次のコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(folder)/(img/[^.]+\.jpg)$ $1/some.php?img=$2 [L,QSA,NC]

確実に:

  • .htaccessが有効になっている
  • mod_rewriteが有効になっています
  • あなたのURLはhttp://example.com/folder/img/test.jpg
于 2012-10-17T12:04:06.087 に答える
2

URL全体ではなく、URL内の画像のファイル名を新しいphpURLに含めたいようです。だから次のようなもの:

RewriteRule ^folder/img/(.*[.]jpg)$ /folder/some.php?filename=$1
于 2012-10-17T01:21:26.830 に答える
1

コメントであなたが言ったことと以前のルールが機能しなかったことを考慮して、私はメッセージを編集しました、これは私が今持っているものです。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)\.jpg [NC]
RewriteRule ^folder/img/([\w]*\.jpg)$ folder/some.php?img=img/$1[R=301,L]

フォルダが可変の場合は、(\ w *)のフォルダを変更して、ルールの右側に参照を追加できます。

お役に立てれば。

さよなら

于 2012-10-17T01:45:10.270 に答える