如何将包含某个目录的URL转发到新子域上的相同URL

时间:2015-11-25 19:30:46

标签: apache .htaccess mod-rewrite redirect

刚刚推出了一个新网站。保留旧网站,但将其分配到子域。

我需要将对旧网站网址的请求转发到新的子网域。

旧网站网址都具有以下结构:" www.oldsite.com/BMT/xxxxxx" " / BMT /"直接跟随.com。

我需要我的.htaccess将这样的网址转发到" subdomain.oldsite.com"而不是" www.oldsite.com",在" / BMT /"

之后保持相同的路径

没有" / BMT /&#34的任何网址;不应该重定向。

从我的研究中,我认为这可能有效

RewriteCond %{REQUEST_URI} ^/BMT http://subdomain.oldsite.com%{REQUEST_URI} [L,R=301]

我是在正确的轨道上吗?

如果是这样,我应该在当前的.htaccess中添加它?

目前.htaccess是:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

1 个答案:

答案 0 :(得分:1)

是的,你是对的,

RewriteCond %{REQUEST_URI} ^/BMT [NC]

是一个条件,如果它匹配以/ BMT开头的请求uri字符串,则规则会将uri重定向到http://sub.domain

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_URI} ^/BMT [NC]
RewriteRule ^(.*)$ http://sub.oldsite.com/$1 [NC,R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress