На моем старом хосте при добавлении домена я мог выбрать, хочу ли я http://www.domain
, http://domain
или оба (если, например, я выбрал www.domain, он перенаправит http://domai
п к http://www.com
.)
это возможно без редактирования .htaccess? как в vosts.conf?
также, если делать это через .htaccess, какой метод лучше?
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
? Я читал, что без первой строки браузеры http / 1.0 не будут работать (поскольку они не включают хост в заголовок)
Если вы ничего не делаете с SSL, вы также сможете использовать виртуальные хосты на основе имен для перенаправления. Один виртуальный хост будет желаемым, а другой будет вашим перенаправлением.
<VirtualHost XXX.XXX.XXX.XXX>
ServerName old.com
ServerAlias www.old.com
Redirect permanent / http://www.new.com/
</VirtualHost>
<VirtualHost XXX.XXX.XXX.XXX>
ServerName www.new.com
<Directory /var/www/www.new.com>
</Directory>
</VirtualHost>
См. № 6 на следующем сайте: http://www.yolinux.com/TUTORIALS/ApacheRedirect.html
Все, что вы можете поместить в .htaccess, вы также можете поместить в <Directory/>
раздел в конфигурации VirtualHost для сайта, который вы пытаетесь изменить - .htaccess - это просто ярлык для этого.
Например, вы можете расширить директиву Virtualhost следующим образом:
<VirtualHost x.x.x.x:80>
ServerName something.com
ErrorLog logs/something.com-error.log
###### Add the 5 lines below.... ######
<Directory /var/www/something.com/html>
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</Directory>
</VirtualHost>
Как вы упомянули "vhost.conf", я предполагаю, что вы используете сервер Plesk, и в этом случае вы можете просто добавить <Directory/>
раздел на vhost.conf (не забудьте исправить путь к каталогу httpdocs вашего сайта.
Не забудьте бежать /usr/local/psa/admin/bin/websrvmng -a
после этого и перезапустите Apache.