У меня есть веб-сайт, на который можно попасть через www.example.com. Теперь я хочу сделать его также доступным на example.com. Как я могу это сделать?
У меня есть несколько поддоменов, например test.example.com, test2.example.com и т. д. Я тоже немного прочитал и обнаружил, что нужно использовать htaccess
для постоянного перенаправления с example.com на www.example.com.
RewriteCond %{http_host} ^example.com [nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc]
Так что теперь не должно быть дублированного контента, и он должен быть оптимизирован для SEO. Но как мне создать A-record
? Сейчас есть только один с www.example.com. Если я создам его с помощью example.com, он автоматически отобразится на example.com.example.com ...
Затем мне нужно добавить запись в host-файле. Это похоже на это?
192.168.1.1 example.com
Затем у меня есть несколько записей для VirtualHost для apache. Это правильный файл?
<VirtualHost 192.168.1.1:80>
ServerName www.example.com
ServerAlias *.www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/path
<Directory /var/www/html/path>
AllowOverride None
Options +FollowSymLinks -Indexes -Includes +Multiviews +ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
Решение:
<VirtualHost 192.168.1.1:80>
ServerName example.com
Redirect 301 / http://www.example.com/
</VirtualHost>
<VirtualHost 192.168.1.1:80>
ServerName www.example.com
ServerAlias *.www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/path
<Directory /var/www/html/path>
AllowOverride None
Options +FollowSymLinks -Indexes -Includes +Multiviews +ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
Я сделал это вместе с двумя A-записями (одна для www.example.com и example.com), указывающими на IP-адрес, на котором находится веб-сервер. Кроме того, у меня была следующая запись в /etc/hosts
192.168.1.1 www.example.com example.com
Я также указываю свою запись в белом списке от squid:
.example.com
Но как мне создать A-запись? Сейчас есть только один с www.example.com. Если я создам его с помощью example.com, он будет автоматически сопоставлен с example.com.example.com ...
Почему example.com.example.com? Просто попросите ваш DNS-хост вставить A-запись для @ (самого домена), указывающую на IP-адрес сервера.
Затем мне нужно добавить запись в хост-файл
Нет, если это в DNS, нет.
Затем у меня есть несколько записей для VirtualHost для apache. Это правильный файл?
Лично я предпочитаю поместить "голое" доменное имя в отдельный раздел с тривиальным Redirect permanent
директива, чтобы подтолкнуть пользователей к сайту www.
Это позволит избежать (по общему признанию скромного) снижения производительности из-за необходимости анализировать файлы .htaccess с условными перенаправлениями в них.
Это также означает, что вы получите отдельные файлы журнала для двух имен. ИМХО, это хорошо - это упростит определение пользователей домена, из которых на самом деле прибывают, и позволит избежать двойной записи, которую вы получили бы в журнале, если бы это было сделано на одном виртуальном сервере.
Что касается ввода DNS, вам нужно сделать это так:
example.com. A 192.168.x.y
www.example.com. CNAME example.com.
Если у вас есть только файл хоста для тестирования, сделайте следующее:
192.168.1.1 example.com
192.168.1.1 www.example.com
В этом случае файл виртуального хоста должен выглядеть так:
<VirtualHost 192.168.1.1:80>
ServerName example.com
ServerAlias *.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/path
<Directory /var/www/html/path>
AllowOverride None
Options +FollowSymLinks -Indexes -Includes +Multiviews +ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>
файл .htaccess использовать нельзя