use*_*554 4 php apache .htaccess http-redirect url-redirection
我是这个社区的新手虽然听过很多关于它的信息.所以,我今天在这里获得有关重定向301和redirectmatch 301的一个查询的解决方案.
我曾尝试使用Redirect 301重定向404页面
Redirect 301 /part1-url http://domain.com/part1-url/part2-url/part3-url.html
Run Code Online (Sandbox Code Playgroud)
这个规则起到了噩梦的作用,我的目标网址随后开始行为不端,并且重复的字符串/part2-url/part3-url.html被附加到我的去除网址,这就像 -
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
Run Code Online (Sandbox Code Playgroud)
然后我使用RedirectMatch如下:
RedirectMatch 301 ^/part1-url$ http:// domain.com/part1-url/part2-url/part3-url.html
Run Code Online (Sandbox Code Playgroud)
它开始工作正常.
我无法理解为什么会这样,以及第二个如何运作.
我将衷心感谢您的帮助.
Redirect是应该重定向所有URL 开头的字符串.由于您重定向到的URL以该字符串开头,因此您很快就会立即重定向.
RedirectMatch重定向与正则表达式匹配的URL.您曾经$明确地将URL的结尾作为其一部分进行匹配.这意味着"从......开始"是不够的.
取自阿帕奇。
重定向:
Redirect 指令通过要求客户端重新获取新位置的资源,将旧 URL 映射到新 URL。
旧的 URL 路径是一个以斜杠开头的区分大小写(% 解码)的路径。不允许使用相对路径。
新 URL 可以是以方案和主机名开头的绝对 URL,也可以是以斜杠开头的 URL 路径。在后一种情况下,将添加当前服务器的方案和主机名。
那么任何以 URL-path 开头的请求都会向目标 URL 位置处的客户端返回重定向请求。匹配的 URL 路径之外的其他路径信息将附加到目标 URL。
来源:Apache 重定向
重定向匹配
该指令相当于 Redirect,但使用正则表达式,而不是简单的前缀匹配。提供的正则表达式与 URL 路径进行匹配,如果匹配,服务器会将任何带括号的匹配替换为给定字符串并将其用作文件名。
| 归档时间: |
|
| 查看次数: |
10944 次 |
| 最近记录: |