Apache 301重定向不工作-追加路径
有人能告诉我为什么下面的方法不起作用吗Apache 301重定向不工作-追加路径,apache,.htaccess,redirect,http-status-code-301,Apache,.htaccess,Redirect,Http Status Code 301,有人能告诉我为什么下面的方法不起作用吗 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/” 重定向301/foo/bar/test/https://www.example.com 我认为您看到的是一个缓存响
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/”
重定向301/foo/bar/test/https://www.example.com
我认为您看到的是一个缓存响应,因为上面的指令不可能产生指定的结果
但是,由于您只想重定向到根域,因此重定向
不是作业的正确指令<代码>重定向是前缀匹配,将在匹配后将路径段复制到目标URL上
因此,例如,给定上述指令和对/foo/bar/test/baz
的请求,您将被重定向到https://www.example.combaz/
-注意URL上的附加baz/
(域名后缺少斜杠-这是另一个问题,由URL路径/foo/bar/test/
上的尾随斜杠引起。如果需要尾随斜杠,则还需要将尾随斜杠添加到目标中)
尝试重定向匹配insead:
RedirectMatch 302 ^/foo/bar/test/$ https://www.example.com
当您确信302工作正常时,将其更改为301。(301重定向由浏览器缓存,因此可能会使测试变得麻烦。)
RedirectMatch
使用正则表达式而不是简单的前缀匹配。参考:在mod_别名Redirect
中,URL路径是以斜杠开头的路径(根相对),因此删除斜杠没有任何帮助。