图像重写

时间:2012-01-21 19:37:03

标签: .htaccess mod-rewrite

这可能更像是一个检查而不是一个问题,但是以下是正确的:

RewriteRule ^_images/(.*)_(.*)_(.*)$ /_images/$2_$3 [L]

基本上我想自动让网页使用/_images/picture-name_ABC123_600.jpg(实际上并不存在)但实际上使用的确存在的图像/_images/ABC123_600.jpg

我在XAMPP本地给了它一张支票并且工作了,但是我虽然我最好尝试添加更多下划线,例如。我期待工作的/_images/picture-name_A_B_C_1_2_3_600.jpg,但图像仍然出现 - 这是正常的行为吗?

我也不太确定我是否可以在上面两个美元符号之间使用下划线...

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

这不起作用,因为(.*)是贪婪的并且尽可能多地匹配字符,甚至是下划线。这样的事情(分隔符之间不允许下划线):

RewriteRule ^_images/([^_]*)_([^_]*)_([^_]*)$ /_images/$2_$3 [L]

或者这个(不合适的匹配):

RewriteRule ^_images/(.*?)_(.*?)_(.*?)$ /_images/$2_$3 [L]

或两者的组合应该有效。 (取决于每个区块内允许的字符数)