正则表达式 – 具有不同域的图像的URL重写

我想使用以下网址:

http://mydomain.com/320x200/server/path/to/my/image.jpg

在哪里可以找到3个要重新检索的参数:

> 320×200:可选参数,可以是两个数字(如“320×200”),或单个数字(如“320x”)或空(仅“x”)
> server:required(这是查找托管图像的服务器的特定参数,但对于这种情况并不重要)
> path / to / my / image.jpg:必需

并用另一个域重写它,如下所示:

http://myotherdomain.com/320/200/server/path/to/my/image.jpg

我尝试了以下重写规则,但它不起作用:

RewriteRule ^([0-9])x([0-9])/([a-zA-Z0-9])/([a-zA-Z0-9 /.])$htp:// myotherdomain. com / $1 / $2 / $3 / $4 [L]

RewriteRule ^([0-9])x /([a-zA-Z0-9])/([a-zA-Z0-9 /.])$htp://myotherdomain.com/$1/$2/$3 [L]

RewriteRule ^ x /([a-zA-Z0-9])/([a-zA-Z0-9 /.])$htp://myotherdomain.com/$1/$2 [L]

为什么不起作用?

当通过像regexplanet.com这样的网站测试时,3个正则表达式正在运行

我试图清除浏览器缓存,重新启动Apache,删除cookie,…仍然无法正常工作!

谢谢你的帮助

编辑:

最后,问题是我的.htaccess文件没有正确保存(不知道为什么).

我刚关闭并再次打开.htaccess,一切都好!

解决方法

你应该通过分组来划分工作.不要费心将x转换为/只是不捕获它.

RewriteRule ^([0-9]+)x([0-9]+/)([a-zA-Z0-9]+)/([a-zA-Z0-9/.]+)$http://myotherdomain.com/$1/$2$3/$4 [L]

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9/.]+)$http://myotherdomain.com/$1/$2 [L]

>([0-9])分别捕获两个分辨率参数.
>(?:….)?是一个非捕获分组呈现可选.

编辑:

可选性是一个陷阱.不要使用它 – >第二条规则.

如果其他域最终是同一个域:

RewriteCond %{REQUEST_URI} ![0-9]+/[0-9]+.*$

会阻止循环.

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...