我是这个社区的新手,虽然已经听说了很多关于它。所以,我今天在这里得到解决方案,我的一个关于重定向 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
它开始工作正常。
我不明白为什么会发生这种情况,以及第二个是如何工作的。
我真的很感激你的帮助。
Redirect
应该重定向所有 URL以字符串开头。由于您重定向到的 URL 以该字符串开头,因此您自然会立即再次重定向。
RedirectMatch
重定向与正则表达式匹配的 URL。您使用$
显式匹配 URL 的结尾作为其中的一部分。这意味着“以”开头是不够的。
取自 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本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(18条)