【问题标题】:.htaccess Regex to rewrite path.htaccess 正则表达式重写路径
【发布时间】:2013-07-17 10:20:52
【问题描述】:

我有一个非常具体的要求,坦率地说,我非常讨厌正则表达式。

程序生成各种大小的图像,并将它们放在与图像同名的文件夹中,然后生成的各种图像根据它们的尺寸得到一个新的名称。

例如:/assets/images/waterlilly/0800x0600.jpg,/assets/images/waterlilly/0400x0300.jpg

由于搜索引擎优化,文件名相当不受欢迎......所以我想如果图像标签的 src 属性可以是 /assets/images/0800x0600/waterlilly.jpg 我可以“简单地”为 htaccess RewriteRule 编写一个正则表达式。 ..

当然,更改调整图像大小的工具的编程目前不是一种选择(遗憾)

所以我的正则表达式是:

(.*?)+/[0-9]+x[0-9]+/(.*?)+\.(.*?)+

对于正则表达式匹配的测试文件“/assets/images/0800x0600/waterlilly.jpg”,我如何获得以下内容?

$1 = /assets/images/
$2 = 0800x0600
$3 = waterlilly
$4 = jpg

提前致谢!

【问题讨论】:

    标签: regex .htaccess


    【解决方案1】:

    这个正则表达式应该适合你:

    ^(.+?)/([^/]+)/([0-9]+x[0-9]+)\.(.*)$
    

    这是适合你的 RewriteRule:

    RewriteRule ^(.+?)/([^/]+)/([0-9]+x[0-9]+)\.(.*)$ /$1/$3/$2.$4 [L]
    

    【讨论】:

    • 我接受了你的回答,尽管它实际上并没有像我预期的那样工作,尽管它为我指明了正确的方向并帮助我想出了一个有效的正则表达式。这里是工作正则表达式:^((.*?)+)([0-9]+x[0-9]+)/([^.]+)(.*)$ /$1$3/$4$5 [L]
    • 谢谢,请随时告诉我哪个答案对您有用,以便我可以将其作为编辑提供,以帮助未来的访问者。
    猜你喜欢
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多