無需輸入 www 即可使網站可用
我有一個可以通過 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 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>
我將這與兩個指向 Web 伺服器所在 IP 地址的 A 記錄(一個用於 www.example.com 和 example.com)一起製作。此外,我有以下條目
/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 主機為指向伺服器 IP 地址的 @(域本身)放入 A 記錄。
然後我必須在主機文件中添加一個條目
不是,如果它在 DNS 中,不,你沒有。
比我有一些用於 apache 的 VirtualHost 條目。這個文件正確嗎?
我個人的偏好是將“裸”域名放在其自己的部分中,並使用一個簡單的
Redirect permanent
指令將使用者推送到 www 站點。這將避免必須解析帶有條件重定向的 .htaccess 文件對性能的(誠然適度的)影響。
這也意味著您將獲得兩個名稱的單獨日誌文件。恕我直言,這是一件好事——它可以更容易地分辨出哪些域使用者實際上來自哪個域,並且避免了在一個虛擬伺服器中完成時您會在日誌中得到的雙重輸入。