如何从root重定向到子域?

时间:2013-11-11 08:41:46

标签: php apache .htaccess mod-rewrite redirect

我的托管中有一个结构文件夹,如:

/public_html/
index.php  
aaa.php  
bbb.php  
ccc.php

我创建了一个文件夹名称“old”,然后将所有旧文件移动到“old”。 Old是一个像old.mysite.com这样的子域名

/public_html/
/old/
index.php   
aaa.php   
bbb.php   
ccc.php

但是,我的网站已经有很多帖子的Google Index

http:/mysite.com/yyyy/dd/example-example-example-abc
http:/mysite.com/yyyy/dd/example-example-example-abc1
http:/mysite.com/yyyy/dd/example-example-example-abc2
.....
http:/mysite.com/yyyy/dd/example-example-example-abc3

我想将所有网址重定向到

http:/old.mysite.com/yyyy/dd/example-example-example-abc.
http:/old.mysite.com/yyyy/dd/example-example-example-abc1.
http:/old.mysite.com/yyyy/dd/example-example-example-abc2.
.......
http:/old.mysite.com/yyyy/dd/example-example-example-abc3. 

当我将所有文件移动到“旧”时,Google不是该链接的索引,当访问者点击旧链接时,它将显示“404 Page Not Found”。

我怎么能用.htaccess做到这一点?非常感谢你!

2 个答案:

答案 0 :(得分:0)

如果您正在查看永久性网址更改,则需要HTTP 301 redirect

如何在.htaccess文件中执行此操作取决于您重定向的URL数量,以及重定向整个目录时是否存在任何冲突。

要重定向单个网址,请添加类似于以下内容的行

redirect /2013/11/example http://old.mysite.com/2013/11/example

重定向整个目录

redirect /2013/11 http://old.mysite.com/2013/11

答案 1 :(得分:0)

有几种方法可以实现您想要的效果。谷歌索引的一个方面是响应代码。确保响应为“301 Moved Permanently”。检查http://httpd.apache.org/docs/current/rewrite/remapping.html以获取apache文档。

我认为这可行:

RewriteRule ^(.*)$ http://old.mysite.com/2013/11/$1 [R=301,L]