redirect - 使用参数将根“/”重定向到 uri
问题描述
我使用 caddy 将一些默认的查询字符串参数通过重定向它传递给我的应用程序,如下所示:
https://example.com/ --> https://example.com/?someQuery=someValue
我尝试的配置是
redir / {
if {path} is /
/ /?someQuery=someValue
}
这种方法的问题在于它还与查询字符串匹配路径,因此最终会陷入无休止的重定向循环。
如果我没有将查询值传递给它(没有查询的 uri),如何仅将其重定向到查询字符串 URI?
也许我只是忽略了一些东西。
解决方案
{path}
您可以测试{uri}
包含片段和查询的对象,而不是针对进行测试。
redir {
if {uri} is /
/ /?someQuery=someValue
}
在这种情况下,请求/?someQuery=someValue
不会产生重定向。
或者,您可以简单地添加另一个if
语句,检查您计划添加的查询:
redir {
if {path} is /
if {query} not_has someQuery=someValue
/ /?someQuery=someValue
}
这将通过在第一个循环之后停止来停止重定向循环,尽管您仍然会忽略 URI 的其余部分并将重定向到其他片段和查询信息(这可能是不受欢迎的)。
推荐阅读
- python - 读取文件时字符串索引超出范围
- r - R将图例添加到ggplot2
- jupyter-notebook - 有什么方法可以快速启动 jupyter notebook?
- wpf - 从“全局地址列表”Outlook 和分发列表 WPF 中的成员获取所有分发列表
- javascript - jQuery 计数器启动/停止/重置未正确停止
- python - python分组和进一步分组
- mysql - MySQL:为多项选择测试选择每个类别和用户的结果
- sql - 子查询返回超过 1 个值。无法解决
- python - Slack 交互消息:POST 响应不是 json 格式
- install4j - install4j:罐子没有被打包