Apache перенаправление для нескольких доменов - PullRequest
1 голос
/ 17 января 2020

У меня есть ряд доменов, таких как:

payroll.olddomain.com
billing.olddomain.com
support.olddomain.com
etc...

Мне нужно перенаправить все из них на:

payroll.newdomain.com
billing.newdomain.com
support.newdomain.com
...

Я мог бы подойти к этому методом грубой силы с помощью серии параграфы виртуального хоста, один абзац на домен, как в:

<VirtualHost *:80>
    ServerName payroll.olddomain.com
    Redirect permanent / http://payroll.newdomain.com/
</VirtualHost>
...

Или я мог бы использовать серию переписываний, по одному на домен, как в:

RewriteCond "%{HTTP_HOST}"   "payroll.olddomain.com" [NC]
RewriteRule .  "payroll.newdomain.com%{REQUEST_URI}" [L,R=301]
...

Но что бы я действительно хотелось бы сделать, если это возможно, найти простой и элегантный способ (псевдокод):

redirect <anything>.olddomain.com to <anything>.newdomain.com

Я бы предположил, что решение будет включать regexp чтоли, что-то вроде (больше псевдо):

redirect (.*)\.olddomain\.com to http://$1.newdomain.com

Есть какие-нибудь идеи о том, как это сделать sh? Это вообще возможно?

Спасибо!

1 Ответ

1 голос
/ 17 января 2020

Это должно работать. Поместите это в ваш файл root .htaccess. Убедитесь, что mod_rewrite включен.

RewriteEngine On #Don't use twice.

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