2013-10-16 171 views
0

我们的网站存在数据库损坏现在我们正在构建一个新网站。根据标签将旧网址重定向到新网址

但是,我们已经考虑过一种不同的方法,我们正在将我们的旧文章迁移到子域,并构建一个具有更好用户界面和体系结构的新网站。

我想什么做的是在格式,因为这重定向从旧的网站地址的子域,用了:

http://olddomain.com/foo/something 

http://sub.olddomain.com/foo/something 

,我们要保持在OLDDOMAIN服务新内容

http://oldomain.com/foo2/something 

这可能与Nginx的


UPDATE

我们必须在此基础上,我们要重定向

一组词,我们只是想通过重写时

http://olddomain/foo/extrainfo 

重定向

http://sub.olddomain/foo/extra 

规则

/abc/ redirect permanent 

我们有一个问题,这是一个URL有字它被重定向到新的领域。

我们只想http://olddomain/foo/重定向到http://sub.olddomain./foo/extra

http://olddomain/abc/foohttp://sub.olddomain

+0

当决定我们是否重定向时,是否有像'foo'这样的确定词匹配? –

回答

0

你需要你的URL中的东西,以确定它是否是一个旧的URL或新的URL。如果你有什么,比简单,我们可以回答这个问题。你给出的例子可以很容易地解决:

location ~ ^/[a-z]+/[a-z]+$ { 
    return 302 $scheme://sub.$server_name$request_uri; 
} 

location ~ ^/[a-z0-9]+/[a-z]$ { 
    // serve new stuff 
} 

但是不要忘了搜索引擎和其他机器人!如果您打算将来使用新内容的原始网址,请不要重定向任何内容,只需在相同位置提供网页即可。

+0

感谢您提供的信息,我们实际上是将旧数据丢弃到子域并保留它。 我们正试图不松动18K链接,并希望它们被重定向到新的子域。 我会检查这个并取回 感谢您的帮助:) –

0

是的,这对于nginx来说很简单。你只需把一个重写规则在正确的位置/服务器块:

server { 
    listen  80; 
    server_name olddomain.com; 
location ~/foo/ { 
rewrite^http://sub.olddomain.com$request_uri? permanent; 
    } 
    location/{ 
#serve new content 
    } 
} 

server{ 
     listen  80; 
     server_name sub.olddomain.com; 
     location/{ 
    #serve old content 
     } 
} 

我将第二先前的评论,你应该确保你考虑到搜索引擎优化。

相关问题