htaccess在特定目录中将PNG重写为JPG

时间:2013-03-22 19:12:52

标签: .htaccess png rewrite jpeg

基本上我将站点上的图像生成从PNG更改为JPG并转换所有现有文件以节省空间。问题在于对旧版PNG的请求。

这只影响了一些特定目录,例如/ imgs / profiles /,例如

我试图自己解决这条规则,但这让我很生气。

如果有人可以给我一个例子来重写PNG请求作为JPG in / imgs / profiles /我可以为了节省空间而对所有其他请求进行排序。

编辑 - 我的htaccess顶部的部分

FileETag None
Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.site.net
RewriteRule (.*) http://www.site.net/$1 [R=301,L]

ErrorDocument 404 /404.php
ErrorDocument 300 /404.php

RewriteBase /imgs/profiles/
RewriteRule ^([^.]+)\.png$ /$1.jpg [R=301,L,NC]

RewriteRule ^file file.php [L,NC]

1 个答案:

答案 0 :(得分:2)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的$DOCUMENT_ROOT/imgs/profiles中:

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

RewriteRule ^([^.]+)\.png$ /imgs/profiles/$1.jpg [R=301,L,NC]

编辑:我在这里为你的.htaccess提供修复:

确保此.htaccess直接位于$DOCUMENT_ROOT目录下:

FileETag None
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

ErrorDocument 404 /404.php
ErrorDocument 300 /404.php

RewriteCond %{HTTP_HOST} !^www\.site\.net$ [NC]
RewriteRule ^(.*)$ http://www.site.net/$1 [R=301,L]

RewriteRule ^(imgs/profiles/[^.]+)\.png$ /$1.jpg [R=301,L,NC]

RewriteRule ^file/?$ /file.php [L,NC]