2012-10-01 180 views
1

我想检查是否存在一个带有“jpg”扩展名的文件,否则检查是否存在“gif”,否则加载默认图像。所有与mod_rewrite,我收获了很多例子,都是一样的。我想检查正则表达式的URL。现在我的httacces是这个,但没有找到:检查文件是否存在与mod_rewrite

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] 

我怎么能解决这个问题?,谢谢。

回答

0

试试这个

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

RewriteRule ^profileImgs//([^/\.]+)$ profileImgs/.gif$ [L,QSA] 
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] 
1

我解决了这个和我的朋友的溶液中,用2个htaccess的。 在主htacces我把:

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

在第二个(内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的,我认为这会做得更好,但这是我现在使用的解决方案。