这可能更像是一个检查而不是一个问题,但是以下是正确的:
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
,但图像仍然出现 - 这是正常的行为吗?
我也不太确定我是否可以在上面两个美元符号之间使用下划线...
任何帮助都会很棒!
答案 0 :(得分:0)
这不起作用,因为(.*)
是贪婪的并且尽可能多地匹配字符,甚至是下划线。这样的事情(分隔符之间不允许下划线):
RewriteRule ^_images/([^_]*)_([^_]*)_([^_]*)$ /_images/$2_$3 [L]
或者这个(不合适的匹配):
RewriteRule ^_images/(.*?)_(.*?)_(.*?)$ /_images/$2_$3 [L]
或两者的组合应该有效。 (取决于每个区块内允许的字符数)