使用参数将根“/”重定向到 uri
Redirect root "/" to uri with parameters
我使用 caddy 通过重定向将一些默认查询字符串参数传递给我的应用程序,如下所示:
https://example.com/ --> https://example.com/?someQuery=someValue
我试过的配置是
redir / {
if {path} is /
/ /?someQuery=someValue
}
该方法的问题在于它还会将路径与查询字符串匹配,因此最终会陷入无休止的重定向循环。
如果我没有向它传递查询值(没有查询的 uri),如何只将它重定向到查询字符串 URI?
也许我只是忽略了什么。
您可以针对包含片段和查询的 {uri}
进行测试,而不是针对 {path}
进行测试。
redir {
if {uri} is /
/ /?someQuery=someValue
}
在这种情况下,对 /?someQuery=someValue
的请求不会产生重定向。
或者,您可以简单地添加另一个 if
语句,检查您计划添加的查询:
redir {
if {path} is /
if {query} not_has someQuery=someValue
/ /?someQuery=someValue
}
这将通过在第一个之后停止来停止重定向循环,尽管您仍然忽略了 URI 的其余部分并将重定向远离其他片段和查询信息(这可能是不受欢迎的)。
我使用 caddy 通过重定向将一些默认查询字符串参数传递给我的应用程序,如下所示:
https://example.com/ --> https://example.com/?someQuery=someValue
我试过的配置是
redir / {
if {path} is /
/ /?someQuery=someValue
}
该方法的问题在于它还会将路径与查询字符串匹配,因此最终会陷入无休止的重定向循环。
如果我没有向它传递查询值(没有查询的 uri),如何只将它重定向到查询字符串 URI?
也许我只是忽略了什么。
您可以针对包含片段和查询的 {uri}
进行测试,而不是针对 {path}
进行测试。
redir {
if {uri} is /
/ /?someQuery=someValue
}
在这种情况下,对 /?someQuery=someValue
的请求不会产生重定向。
或者,您可以简单地添加另一个 if
语句,检查您计划添加的查询:
redir {
if {path} is /
if {query} not_has someQuery=someValue
/ /?someQuery=someValue
}
这将通过在第一个之后停止来停止重定向循环,尽管您仍然忽略了 URI 的其余部分并将重定向远离其他片段和查询信息(这可能是不受欢迎的)。