mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
* Fix #1185 * Return normal path if no rewrite has happened * Revert change, not required * Updated tests
This commit is contained in:
parent
59e6ceb518
commit
bbee961415
3 changed files with 20 additions and 2 deletions
|
@ -223,8 +223,22 @@ func (r *replacer) getSubstitution(key string) string {
|
|||
}
|
||||
return host
|
||||
case "{path}":
|
||||
return r.request.URL.Path
|
||||
// if a rewrite has happened, the original URI should be used as the path
|
||||
// rather than the rewritten URI
|
||||
path := r.request.Header.Get("Caddy-Rewrite-Original-URI")
|
||||
if path == "" {
|
||||
path = r.request.URL.Path
|
||||
}
|
||||
return path
|
||||
case "{path_escaped}":
|
||||
path := r.request.Header.Get("Caddy-Rewrite-Original-URI")
|
||||
if path == "" {
|
||||
path = r.request.URL.Path
|
||||
}
|
||||
return url.QueryEscape(path)
|
||||
case "{rewrite_path}":
|
||||
return r.request.URL.Path
|
||||
case "{rewrite_path_escaped}":
|
||||
return url.QueryEscape(r.request.URL.Path)
|
||||
case "{query}":
|
||||
return r.request.URL.RawQuery
|
||||
|
|
|
@ -24,7 +24,8 @@ func TestRewrite(t *testing.T) {
|
|||
regexps := [][]string{
|
||||
{"/reg/", ".*", "/to", ""},
|
||||
{"/r/", "[a-z]+", "/toaz", "!.html|"},
|
||||
{"/url/", "a([a-z0-9]*)s([A-Z]{2})", "/to/{path}", ""},
|
||||
{"/path/", "[a-z0-9]", "/to/{path}", ""},
|
||||
{"/url/", "a([a-z0-9]*)s([A-Z]{2})", "/to/{rewrite_path}", ""},
|
||||
{"/ab/", "ab", "/ab?{query}", ".txt|"},
|
||||
{"/ab/", "ab", "/ab?type=html&{query}", ".html|"},
|
||||
{"/abc/", "ab", "/abc/{file}", ".html|"},
|
||||
|
@ -71,6 +72,8 @@ func TestRewrite(t *testing.T) {
|
|||
{"/r/z", "/toaz"},
|
||||
{"/r/z.html", "/r/z.html"},
|
||||
{"/r/z.js", "/toaz"},
|
||||
{"/path/a1b2c", "/to/path/a1b2c"},
|
||||
{"/path/d3e4f", "/to/path/d3e4f"},
|
||||
{"/url/asAB", "/to/url/asAB"},
|
||||
{"/url/aBsAB", "/url/aBsAB"},
|
||||
{"/url/a00sAB", "/to/url/a00sAB"},
|
||||
|
|
|
@ -23,6 +23,7 @@ func TestTo(t *testing.T) {
|
|||
{"/?a=b", "/testdir /index.php?{query}", "/index.php?a=b"},
|
||||
{"/?a=b", "/testdir/ /index.php?{query}", "/testdir/?a=b"},
|
||||
{"/test?url=http://", " /p/{path}?{query}", "/p/test?url=http://"},
|
||||
{"/test?url=http://", " /p/{rewrite_path}?{query}", "/p/test?url=http://"},
|
||||
{"/test/?url=http://", " /{uri}", "/test/?url=http://"},
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue