301 重定向不工作 - 附加路径
301 Redirect Not Working - Appending Path
有人可以告诉我为什么以下方法不起作用吗?
Redirect 301 /foo/bar/test/ https://www.example.com
它重定向到 https://www.example.com/bar/test/
(注意 /foo/
已被删除?)而不是简单地 https://www.example.com
.
尝试只 "foo/bar/test/" 而不是“/foo/bar/test/”
Redirect 301 /foo/bar/test/ https://www.example.com
我认为您看到的是缓存响应,因为上述指令不可能产生规定的结果。
但是,由于您只想重定向到根域,因此 Redirect
不是正确的指令。 Redirect
是前缀匹配,将匹配后的路径段复制到目标URL.
因此,例如,鉴于上述指令和 /foo/bar/test/baz
的请求,您将被重定向到 https://www.example.combaz/
- 请注意 URL 上的附加 baz/
(以及域名后缺少的斜杠 - 这是另一个问题,由 URL-路径 /foo/bar/test/
上的尾部斜杠引起。如果您需要尾部斜杠,则需要添加尾部斜杠也到达目标)。
尝试 RedirectMatch
insead:
RedirectMatch 302 ^/foo/bar/test/$ https://www.example.com
当您对它工作正常感到满意时,将 302 更改为 301。 (301 重定向由浏览器缓存,因此会使测试变得麻烦。)
RedirectMatch
使用正则表达式而不是简单的前缀匹配。参考:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectmatch
有人可以告诉我为什么以下方法不起作用吗?
Redirect 301 /foo/bar/test/ https://www.example.com
它重定向到 https://www.example.com/bar/test/
(注意 /foo/
已被删除?)而不是简单地 https://www.example.com
.
尝试只 "foo/bar/test/" 而不是“/foo/bar/test/”
Redirect 301 /foo/bar/test/ https://www.example.com
我认为您看到的是缓存响应,因为上述指令不可能产生规定的结果。
但是,由于您只想重定向到根域,因此 Redirect
不是正确的指令。 Redirect
是前缀匹配,将匹配后的路径段复制到目标URL.
因此,例如,鉴于上述指令和 /foo/bar/test/baz
的请求,您将被重定向到 https://www.example.combaz/
- 请注意 URL 上的附加 baz/
(以及域名后缺少的斜杠 - 这是另一个问题,由 URL-路径 /foo/bar/test/
上的尾部斜杠引起。如果您需要尾部斜杠,则需要添加尾部斜杠也到达目标)。
尝试 RedirectMatch
insead:
RedirectMatch 302 ^/foo/bar/test/$ https://www.example.com
当您对它工作正常感到满意时,将 302 更改为 301。 (301 重定向由浏览器缓存,因此会使测试变得麻烦。)
RedirectMatch
使用正则表达式而不是简单的前缀匹配。参考:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectmatch