htaccess перенаправляет весь контент, включая субдомены - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть 3 домена для одного и того же веб-приложения, поскольку я не хочу дублировать контент, я хочу перенаправить два других домена в основной домен.

Если пользователь вводит client_xyz.domain2.comон должен быть перенаправлен на client_xyz.primarydomain.com.

Если пользователь вводит client_xyz.domain2.com/folder/file/etc, его следует перенаправить на client_xyz.primarydomain.com/folder/file/etc.

Если пользователь набирает domain2.com/test/page, его следует перенаправить на primarydomain.com/test/page

Я подумал, что это лучшее решение, чтобы избежать наказания Google за дублированный контент.Если вы считаете, что есть лучшее решение для этого (например, DNS), дайте мне знать.

Ответы [ 3 ]

2 голосов
/ 30 декабря 2011

Поместите этот код в ваш файл .htaccess:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteOptions MaxRedirects=10

RewriteCond %{HTTP_HOST} ^(client_xyz\.)?domain2\.com$ [NC]
RewriteRule ^ http://%1primarydomain.com%{REQUEST_URI} [NE,R=301,L]
0 голосов
/ 30 декабря 2011

Если вы можете использовать mod_rewrite, это должно работать:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (^.*?\.|^)?domain2\.com
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([a-z0-9-]+)/? http://$1.primarydomain.com [R=301,NC,L]

Если нет, то, наверное, мне придется оставить это кому-то умнее меня; -)

0 голосов
/ 30 декабря 2011

Вы можете использовать регулярные выражения в файле .htaccess, поэтому установите перенаправление 301 (постоянно перемещенное).

RedirectMatch 301 (^.*?\.|^)domain2.com(.*) $1.primarydomain.com$2

Не проверено, но должно быть в порядке.

[править] Theниже довольно бесполезен, так как ваш комментарий, но я все равно оставлю его здесь.

В качестве альтернативы, вы можете установить псевдонимы сервера в вашем конфигурационном файле Apache.Возможно, у вас есть что-то вроде этого:

ServerName primarydomain.com
DocumentRoot /var/www/html/mysite/
<Directory "/var/www/html/mysite/">
    AllowOverride All
</Directory>

Измените его на:

ServerName primarydomain.com
ServerAlias domain2.com
DocumentRoot /var/www/html/mysite/
<Directory "/var/www/html/mysite/">
    AllowOverride All
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...