Linux中重定向:重定向 vs重定向匹配(redirectmatch apache)

我是这个社区的新手,虽然已经听说了很多关于它。所以,我今天在这里得到解决方案,我的一个关于重定向 301 和 redirectmatch 301 的查询。

我试图重定向 404 页面使用重定向 301 类似的东西

Redirect 301 /part1-url http://domain.com/part1-url/part2-url/part3-url.html

这条规则是一场噩梦,我的目标 URL 后来开始行为不端,一个重复的字符串/part2-url/part3-url.html被附加到我的 detination URL,它变成了类似的东西-

http:// domain.com/part1-url/part2-url/part3-url.html/part2-url/part3-url.html/part2-url/part3-url.html/part2-url/part3-url.html/part2-url/part3-url.html/part2-url&id=part3-url.html&var=part2-url&var2=part3-url

然后我使用 RedirectMatch 如下:

RedirectMatch 301 ^/part1-url$ http:// domain.com/part1-url/part2-url/part3-url.html

它开始工作正常。

我不明白为什么会发生这种情况,以及第二个是如何工作的。

我真的很感激你的帮助。

14

Redirect应该重定向所有 URL以字符串开头。由于您重定向到的 URL 以该字符串开头,因此您自然会立即再次重定向。

RedirectMatch重定向与正则表达式匹配的 URL。您使用$显式匹配 URL 的结尾作为其中的一部分。这意味着“以”开头是不够的。

5

取自 Apache。

重定向:

Redirect 指令通过要求客户端在新位置重新获取资源,将旧 URL 映射到新 URL。

旧的 URL 路径是以斜杠开头的区分大小写(% 解码)的路径。不允许使用相对路径。

新 URL 可以是以 scheme 和 stname 开头的绝对 URL,也可以是以斜杠开头的 URL 路径。在后一种情况下,将添加当前服务器的 scheme 和 stname。

然后,任何以 URL-path 开头的请求都将在目标 URL 的位置向客户端返回重定向请求。匹配的 URL-path 之外的其他路径信息将附加到目标 URL。

Source:Apache Redirect

重定向匹配

此指令等效于 Redirect,但使用正则表达式,而不是简单的前缀匹配。提供的正则表达式与 URL 路径匹配,如果匹配,服务器将把任何括号大小的匹配替换为给定的字符串,并将其用作文件名。

Source:Apache RedirectMatch

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(605)
怎么打开电脑运行程序:在GitLab运行程序上配置缓存
上一篇
Linux删除指定文件命令:Linux的 locate命令返回已删除文件的路径
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(18条)