0

所以我正在建立一个新站点,旧站点上的所有内容都将被废弃——包括域结构和域名。我目前在我的 .htaccess 设置中有一个重定向规则,可以将http://jagdesignideas.com重定向到http://jag.is,如下所示:

RewriteCond %{HTTP_HOST} ^(www.)?jagdesignideas.com
RewriteRule ^(/)?$ "http://jag.is" [R=301,L]

但问题是,如果用户从 intarwebz 上的其他地方访问http://jagdesignideas.com/about的链接,例如,它不会像我想要的那样重定向到http://jag.is 。相反,它会从 jagdesignideas.com 域中调出 404 页面。

如何让 jagdesignideas.com 域的所有子字符串以新的重定向结束?

编辑:需要明确的是,我不是试图将旧站点上的页面与新站点匹配,只是对 jagdesignideas.com 和任何指向 jag.is 域的内容进行大规模重定向。

4

1 回答 1

1

向我们展示您在 RewriteRule 中匹配的内容:^(/)?$匹配根斜线或不匹配任何内容,这意味着您只是重写对域根的调用。您需要使用 捕获所有路径组件^.*$,它匹配域根之后的任何内容,或者什么都不匹配。这会将任何对旧域的调用(无论是否有路径)重定向到新域的根目录:

RewriteCond %{HTTP_HOST} ^(www\.)?jagdesignideas\.com [NC]
RewriteRule ^.*$ http://jag.is [R=301,L]

如果您想将路径结构重定向到新服务器上的相同路径结构,则可以这样做:

RewriteRule ^.*$ http://jag.is/$0 [R=301,L]

从那里开始,您基本上可以执行任何类型的重定向以将旧路径结构映射到新路径结构 - 请参阅Apache 模块 mod_rewrite参考。

于 2012-05-26T18:50:20.927 回答