我是一个mod_rewrite新手和正则expression式noob,但这是我想要做的:
我有一个脚本 ,将在飞行中重新调整图像的大小。 我希望能够采取任何图像文件path,添加一个查询string,并自动发送到脚本进行处理。
所以像这样:
from: http://mysite.com/images/logo.jpg?w=100&h=50 to: http://mysite.com/images/thumbs/phpThumb.php?src=logo.jpg&w=100&h=50
当然,如果没有指定查询string,它应该指向原始文件。
使用/ images中的.htaccess
文件,我已经得到了这个。 但它根本不起作用。 或者至多,它打破了我所有的网站图像:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{QUERY_STRING} ^.* RewriteRule ([^\s]+(\.(?i)(jpg|png|gif|bmp))$) /thumbs/phpThumb.php?src=$1 [L,QSA] </IfModule>
首先添加一个RewriteBase ,这将去除查询string中的/images/
part。 您将获得photo.jpg?w=...
而不是/images/photo.jpg?w=...
第二个添加/images/
redirect,因为你当前的redirect告诉去http://mysite.com/thumbs/phpThumbs...
而不是http://mysite.com/images/thumbs/phpThumbs...
这给了这样的事情:
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /images/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{QUERY_STRING} ^.+ RewriteRule ([^\s]+(\.(?i)(jpg|png|gif|bmp))$) /images/thumbs/phpThumb.php?src=$1 [L,QSA] </IfModule>