1

拡張子が「jpg」のファイルが存在するかどうかを確認し、そうでない場合は「gif」が存在するかどうかを確認し、そうでない場合はデフォルトの画像をロードします。すべて mod_rewrite を使用して、多くの例を読みましたが、すべて同じです。正規表現の URL を確認したい。今、私のhttaccesはこれですが、見つかりません:

RewriteEngine On
#RewriteBase /

# Do not do anything for already existing files and folders
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# add .html file extension (if such file does exist)
# jpg
RewriteCond %{DOCUMENT_ROOT}/profileImgs/$1_50\.jpg$ -f
RewriteRule ^([0-9]+)/img/normal$ profileImgs/$1_50.jpg  [L]

# gif
RewriteCond %{DOCUMENT_ROOT}/profileImgs/$1_50\.gif$ -f
RewriteRule ^([0-9]+)/img/normal$ profileImgs/$1_50.gif  [L]

# default
RewriteRule ^([0-9]+)/img/normal$ profileImgs/noImg_50.gif  [L]

どうすればこれを解決できますか?, ありがとう.

4

3 に答える 3

2

試す:

# add .html file extension (if such file does exist)
# jpg
RewriteCond %{REQUEST_URI} ^/([0-9]+)/img/normal$
RewriteCond %{DOCUMENT_ROOT}/profileImgs/%1_50\.jpg$ -f
RewriteRule ^([0-9]+)/img/normal$ profileImgs/$1_50.jpg  [L]

# gif
RewriteCond %{REQUEST_URI} ^/([0-9]+)/img/normal$
RewriteCond %{DOCUMENT_ROOT}/profileImgs/%1_50\.gif$ -f
RewriteRule ^([0-9]+)/img/normal$ profileImgs/$1_50.gif  [L]

# default
RewriteRule ^([0-9]+)/img/normal$ profileImgs/noImg_50.gif  [L]
于 2012-10-01T05:34:28.193 に答える
1

2 htaccess を使用した友人のソリューションでこれを解決しました。メインの htacces に次のように記述しました。

RewriteRule ^([0-9]+)/normal profileImgs/$1/small [L,NS]
#RewriteRule ^([0-9]+)/normal profileImgs/$1/otherSize [L,NS]

2 番目 (profileImgs 内) では、次のようになります。

# JPG
RewriteCond %{REQUEST_FILENAME}_small.jpg -f
RewriteRule ([0-9]+)/normal $1_small.jpg [NS,L]

# GIF
RewriteCond %{REQUEST_FILENAME}_small.gif -f
RewriteRule ([0-9]+)/normal $1_small.gif [NS,L]

# ANY
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([0-9]+)/normal noImg_small.jpg

# JPG
#RewriteCond %{REQUEST_FILENAME}_otherSize.jpg -f
#RewriteRule ([0-9]+)/normal $1_otherSize.jpg [NS,L]

# GIF
#RewriteCond %{REQUEST_FILENAME}_otherSize.gif -f
#RewriteRule ([0-9]+)/normal $1_otherSize.gif [NS,L]

# ANY
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ([0-9]+)/normal noImg_otherSize.jpg

これにより、他のサイズを配置できます... 2つのhtaccessを使用しているため、異常に思えますが、これで改善できると思いますが、これが私が現在使用しているソリューションです。

于 2012-10-03T04:38:23.083 に答える
0

これを試して

RewriteCond %{DOCUMENT_ROOT}/profileImgs/$1_50\.jpg$ -f
RewriteRule ^profileImgs/[^/\.]+$ cache/gif$ [L,QSA]

RewriteRule ^profileImgs//([^/\.]+)$ profileImgs/.gif$ [L,QSA]
于 2012-10-01T04:52:29.277 に答える