Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 301重定向不工作-追加路径_Apache_.htaccess_Redirect_Http Status Code 301 - Fatal编程技术网

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路径是以斜杠开头的路径(根相对),因此删除斜杠没有任何帮助。