.htaccess从旧的根域重定向到新的特定子目录域

时间:2016-06-07 08:45:37

标签: regex apache .htaccess redirect http-status-code-301

RewriteEngine on  
RewriteRule ^(.*)$ http://www.NEWfoobar.com/$1 [R=301,L]  

我在.htaccess内部有https://stackoverflow.com/a/7578810这段代码,目前正在将www.OLDfoobar.com迁移到www.NEWfoobar.com并且其所有子目录结构都很好(打算行为,一切都好)

现在,如何添加捕获www.OLDfoobar.com的其他规则以重定向到www.NEWfoobar.com中的一个特定网页? 比如说'www.NEWfoobar.com/welcomeToNewDomain

[L]标志是什么让我感动。顺便说一下,我对$1的用途不太确定。这可能不是RewriteRule 模式的正则表达式标志,是吗?

接受回答

RewriteEngine on  
RewriteRule ^/?$ http://www.NEWfoobar.com/some/sub/directory [R=301,L]  
RewriteRule ^(.*)$ http://www.NEWfoobar.com/$1 [R=301,L]   

1 个答案:

答案 0 :(得分:1)

你需要

RewriteEngine on  
RewriteRule ^(.*)$ http://www.NEWfoobar.com/welcomeToNewDomain [R=301,L]  

$1意味着使用第一个捕获组,它是左侧括号中的值。

选项中的L表示如果匹配适用,则停止处理重写规则(即这是最后一条规则)。

^(.*)$表示:

`^` match beginning of string
`(.*)` match zero or more characters and store in capture group 1
`$` match end of string

如果我错过了解你只想重新定位根请求,同时保留旧的捕获,则需要在之前添加新规则 现有的

RewriteRule ^/?$ https://www.NEWfoobar.com/welcomeToNewDomain [R=301,L]

这将匹配空路径或/