我有一个可以通过 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...
然后我必须在主机文件中添加一个条目。它看起来像这样吗?
192.168.1.1 example.com
然后我有一些 Apache VirtualHost 的条目。这个文件正确吗?
<VirtualHost 192.168.1.1:80>
ServerName www.example.com
ServerAlias *.www.example.com
ServerAlias example.com
ServerAdmin [email protected]
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 [email protected]
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)一起创建,这些记录指向 Web 服务器所在的 IP 地址。此外,我在/etc/hosts
192.168.1.1 www.example.com example.com
我还声明了来自 squid 的白名单条目:
.example.com
答案1
但是我该如何创建 A 记录?现在只有一条 www.example.com 记录。如果我创建一条 example.com 记录,它将自动映射到 example.com.example.com ...
为什么是 example.com.example.com?只需让您的 DNS 主机为 @(域名本身)添加一个指向服务器 IP 地址的 A 记录即可。
然后我必须在主机文件中添加一个条目
如果它在 DNS 中则不行。
然后我有一些 Apache VirtualHost 的条目。这个文件正确吗?
我个人的偏好是将“裸”域名放在其自己的部分中,并使用一个简单的Redirect permanent
指令将用户推送到 www 网站。
这将避免因解析带有条件重定向的 .htaccess 文件而产生的(诚然适度的)性能损失。
这也意味着您将获得两个名称的单独日志文件。恕我直言,这是一件好事 - 它将使您更容易分辨出用户实际上来自哪个域,并避免在同一个虚拟服务器中完成时在日志中获得的重复条目。
答案2
至于 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 [email protected]
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 文件