.htaccess图像URL的RewriteRule

目前我有以下.htaccess重写规则:

RewriteCond %{HTTP_HOST} ^blitz.example.com.s3-ap-southeast-1.amazonaws.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] 

我正在尝试重写下面的URL,以便它指向实际的URL(请参阅下面的第二个链接):

 http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/3478-product_list_default/green-army-combats-type-i.jpg 

在那里我需要创build一个RewriteRule指向真正的实际URL是:

 http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/img/p/3/4/7/8/3478-product_list_default.jpg 

谁能帮我这个 ? 我真的很困惑这个RewriteRule和正则expression式

编辑

我想要使​​用以下url:

 http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/3478-product_list_default/green-army-combats-type-i.jpg 

并用下面的其他域重写:

 http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/img/p/3/4/7/8/3478-product_list_default.jpg 

到目前为止,如果我使用下面的HTML标记

 <img src="http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/3478-product_list_default/green-army-combats-type-i.jpg"> 

它返回404

编辑2

有趣的是下面的代码也返回404错误

 <IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^blitz.example.com.s3-ap-southeast-1.amazonaws.com$ RewriteRule ^(.*)([0-9]+)([0-9]+)([0-9]+)([0-9]+)-([a-zA-Z0-9_\-/.]+)/([a-zA-Z0-9_\-/.]+)$ img/p/$2/$3/$4/$5/$2$3$4$5-$6.jpg [L] </IfModule> 

编辑3

出于绝望,我只把下面的代码放在我的.htaccess上:

 <IfModule mod_rewrite.c> RewriteRule ^(.*)([0-9]+)([0-9]+)([0-9]+)([0-9]+)-([a-zA-Z0-9_\-/.]+)/([a-zA-Z0-9_\-/.]+)$ img/p/$2/$3/$4/$5/$2$3$4$5-$6.jpg [L] </IfModule> 

.htaccess中没有其他代码,但它仍然返回404。

你试图捕捉的方式很多。 首先,重写引擎不会传递完整的URL而只传递URI,所以名称http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com永远不会被任何RewriteRule ,所以忘了它。 其次,你捕捉的图像的名称,这在我们的例子中似乎是不相关的。

根据评论来看,该图片位于CDN(Amazon S3)上。 如果您想将http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/3478-product_list_default/green-army-combats-type-i.jpg )转换为http://blitz.example.com.s3-website-ap-southeast-1.amazonaws.com/img/p/3/4/7/8/3478-product_list_default.jpg ):这是S3的工作服务器。 为什么是这样? 这是因为(1)的HTTP请求将通过Web浏览器直接发送到S3服务器来加载图像。 所以.htaccess必须放在S3服务器上并启用mod_rewrite

在正面,你的正则表达式是正确的: Regex101