htaccess - 图像网址重写

时间:2014-03-05 18:09:01

标签: .htaccess codeigniter mod-rewrite rewrite

我需要使用Timthumb重写我的图片网址以获得更好的搜索引擎优化。

我有这个htaccess文件(在Codeigniter上),它可以工作,但是当我通过重写的网址(es。http://www.example.com/products/loremipsum-450x600.jpg)时,它会重定向到:http://www.example.com/resize/timthumb.php?src=http://www.moveshop.com/uploads/loremipsum.jpg&w=450&h=600

是否可以在没有重定向的情况下重写? 感谢

- 我的htaccess文件是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /    
RewriteRule ^(products)/(.*)-([0-9]{1,4})x([0-9]{1,4}).(jpg) http://www.example.com/resize/timthumb.php?src=http://www.example.com/uploads/$2.$5&w=$3&h=$4 [R=301,L]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

1 个答案:

答案 0 :(得分:2)

如果htaccess文件与目标位于同一服务器上(例如www.example.com),则需要从规则和R标记中删除主机/方案:

RewriteRule ^(products)/(.*)-([0-9]{1,4})x([0-9]{1,4}).(jpg) /resize/timthumb.php?src=http://www.example.com/uploads/$2.$5&w=$3&h=$4 [L]

如果它们不在同一台服务器上,那么您需要反向代理,这意味着您必须加载mod_proxy。您只需要将R标志替换为P标志:

RewriteRule ^(products)/(.*)-([0-9]{1,4})x([0-9]{1,4}).(jpg) http://www.example.com/resize/timthumb.php?src=http://www.example.com/uploads/$2.$5&w=$3&h=$4 [P,L]