htaccess重写,* .OldDomain.com到* .NewDomain.com,目录更改(301重定向)

时间:2016-02-21 15:06:45

标签: apache .htaccess redirect mod-rewrite url-redirection

htaccess重写,* .olddomain.com到目录更改的* .newdomain.com

大约有50个子域名,因此我为每个子域名编写,可以将旧站点的每个页面重定向到新站点:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^olddomain\.com
RewriteRule ^(.*) http://newdomain.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^subdomain1\.olddomain\.com
RewriteRule ^(.*) http://subdomain1.newdomain.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^subdomain2\.olddomain\.com
RewriteRule ^(.*) http://subdomain2.newdomain.com/$1 [L,R=301]
 ... 
 ...  
  ... 
RewriteCond %{HTTP_HOST} ^subdomain50\.olddomain\.com
RewriteRule ^(.*) http://subdomain50.newdomain.com/$1 [L,R=301]    

 <Files .htaccess>
    order allow,deny
    deny from all
</Files>

上面的代码对我有用,

但我还有其他事情需要同时重写,

1

*.olddomain.com/ca/abd/  (there will be  no pages or anything at the end of / )
*.olddomain.com/ca/sdf/
*.olddomain.com/ca/dfsd/
*.olddomain.com/ca/sdfsd/
*.olddomain.com/ca/sdfsd/
*.olddomain.com/ca/sdfa/
...
...

需要重定向到

*.newdomain.com/t/abd/    (there will be  no pages or anything at the end of / )
*.newdomain.com/t/sdf/
*.newdomain.com/t/dfsd/
*.newdomain.com/t/sdfsd/
*.newdomain.com/t/sdfsd/
*.newdomain.com/t/sdfa/

2

*.olddomain.com/ca/abd/sdfa/
*.olddomain.com/ca/abd/adfa/
*.olddomain.com/ca/abd/adfadf/
*.olddomain.com/ca/abd/adfadf/
*.olddomain.com/ca/abd/adfads/
...

*.newdomain.com/t/abd/sdfa/
*.newdomain.com/t/abd/adfa/
*.newdomain.com/t/abd/adfadf/
*.newdomain.com/t/abd/adfadf/
*.newdomain.com/t/abd/adfads/

&#39; CA&#39;变成了&#39;,并且有很多类别遵循这种模式,我不介意代码是否很长,但我怎样才能使它们在htaccess文件中工作?< / p>

谢谢!

1 个答案:

答案 0 :(得分:1)

我们走了:))

# BEGIN Redirect Code
RewriteEngine On
# all urls with ca - main domain
RewriteCond %{HTTP_HOST} ^olddomain\.com
RewriteCond %{REQUEST_URI} ^/ca
RewriteRule ^ca/(.*)$ http://newdomain.com/t/$1 [L,R=301,NC]

# all urls without ca - main domain
RewriteCond %{HTTP_HOST} ^olddomain\.com
RewriteRule ^(.*) http://newdomain.com/$1 [L,R=301]

# all urls with ca - sub domains
RewriteCond %{HTTP_HOST} ^(.*)\.olddomain\.com$
RewriteRule ^ca/(.*)$ http://%1.newdomain.com/t/$1 [R=301,L]

# all urls without ca - sub domains
RewriteCond %{HTTP_HOST} ^(.*)\.olddomain\.com$
RewriteRule ^(.*)$ http://%1.newdomain.com/$1 [R=301,L]
# END Redirect Code

如果您有任何具体要求,可以与我联系: https://www.fiverr.com/ansarahmed