某些帖子的URL重定向到具有htaccess的子域



我要把博客移到子域以重新开始,所以我需要旧帖子的链接才能从name.com重定向到v1.name.com。但是,name.com上会有新帖子需要忽略。我已经在新的博客安装中更改了URL结构,所以我可以说只有一个月和一年的URL需要重定向,但我还没能做到这一点,我发现的所有例子都在考虑更改URL的末尾,而不是中间。下面拼凑的东西我做错了什么?

(有没有办法在不改变新博客URL结构的情况下实现这一点?我希望在/2013/12/之前重定向所有帖子,但我不知道有什么办法可以指定。)

RewriteEngine on
RewriteRule ^name.com/([0-9]{4}/[0-9]{2})/(.*)$  v1.name.com/$1/$2 [NC, R=301]

好的,您需要将主机名匹配移动到一个单独的条件中,并在替换之前添加http://位:

RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteRule ^([0-9]{4}/[0-9]{2})/(.*)$  http://v1.name.com/$1/$2 [NC, R=301]

对于奖励积分,你说你想在2013/12之前匹配任何东西-如果我正确地理解为你想要2013年包括12月的所有帖子,你可以这样做:

RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3]) 
RewriteRule ^([0-9]{4}/[0-9]{2})/(.*)$  http://v1.name.com/$1/$2 [NC, R=301]

如果你想排除2013年12月:

RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3]) 
RewriteCond %{REQUEST_URI} !/2013/12 
RewriteRule ^([0-9]{4}/[0-9]{2})/(.*)$  http://v1.name.com/$1/$2 [NC, R=301]

最新更新