【发布时间】:2015-01-11 08:20:51
【问题描述】:
我想用清漆(通过 301 重定向)为所有 URL 添加一个尾部斜杠。
我很惊讶我在任何地方都找不到任何关于在线的信息。
这是我得到的最接近的,但显然被破坏了,因为它不考虑查询字符串或任何带有 .在里面。
if (req.url !~ "/$") {
return (synth (751, ""));
}
...
sub vcl_synth {
if (resp.status == 750) {
set resp.status = 301;
set resp.http.Location = "http://www.example.com" + req.url;
return(deliver);
}
}
我要考虑的测试用例
example.com/xyz?query=string -> www.example.com/xyz/?query=string(加www,加/)
example.com/api/latest.json -> www.example.com/api/latest.json(加www,不加/)
【问题讨论】:
-
查看堆栈溢出 - 许多网站不需要斜杠。
-
我不想要你的意见,我想回答我的问题。
-
所以你想重定向
example.com/xyz?query=string到example.com/xyz/?query=string和example.com/api/latest.json到example.com/api/latest.json/等等?您能否编辑您的问题,以提供有关您希望重定向如何执行的具体示例。 -
我澄清了“之前和之后”的例子。
-
那么你怎么知道什么时候添加斜线,什么时候不添加?如果您的任何文件夹包含点 (xyz.abc),则添加尾部斜杠不起作用。这会在后端处理得更好。
标签: regex varnish varnish-vcl