所以我正在建立一个新网站,旧网站上的所有内容都将被废弃 - 包括域名结构和域名。我目前在.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域。
答案 0 :(得分: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 Module mod_rewrite参考。