Все имена в настоящее время указывают на одну и ту же папку веб-сервера, что правильно. То есть domain.net, domain.org и т. Д. Работают без перенаправления на основной .com
Как получить посещения .org и .net для перенаправления браузера на domain.com?
Это должно быть базовым, но я не могу придумать лучший подход.
Я бы посоветовал вам использовать RewriteRule
из mod_rewrite
чем использовать Redirect
из mod_alias
. Поскольку мод переписывать более универсален.
<VirtualHost *:80>
ServerName domain.org
ServerAlias www.domain.org domain.net www. domain.net
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.(net|org)$ [NC]
RewriteRule ^ http://domain.com%{REQUEST_URI} [L,R=301]
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /path/to/documentroot
ServerName domain.com
ServerAlias www.domain.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
Убедитесь, что у вас есть NameVirtualHost *:80
раскомментированный.
Пояснение:
RewriteEngine on
Устанавливает RewriteEngine
на
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.(net|org)$ [NC]
Спички %{HTTP_HOST}
: т.е. базовый URL-адрес хоста. Для получения дополнительной информации RewriteCond
& http headers
посещение: RewriteCond. [NC]
это флаг: 'nocase | NC' (без регистра)
Это делает тест нечувствительным к регистру - различия между 'A-Z' и 'a-z' игнорируются как в развернутой TestString, так и в CondPattern. Этот флаг эффективен только для сравнения TestString и CondPattern. Он не влияет на файловую систему и проверки подзапросов.
Также вы должны перенаправить URL-адреса, которые начинаются с WWW. поэтому ^(www\.)
в выкройке.
RewriteRule ^ http://domain.com%{REQUEST_URI} [L,R=301]
Перезаписывает URL-адрес на domain.com
если матч в RewriteCond
Происходит. Добавляет любой URI запроса, если он есть. т.е. URI для этого запроса (относительно DOCUMENT_ROOT).
если URl был: domain.com/web/hello.php
затем REQUEST_URI=/web/hello.php
@Макароны,
Что я делаю в этой конкретной ситуации, так это создаю отдельный блок виртуального хоста
<VirtualHost *>
ServerName domain.net
ServerAlias domain.org
Redirect permanent http://domain.com
</VirtualHost>
Надеюсь, это поможет.
Исмаэль Казимпан