我使用 DigitalOcean 作为我的托管服务,并且在同一个 droplet 上拥有多个域名。所有这些域名都使用 Let's Encrypt 作为 SSL 证书。
您的 DNS 记录是什么?
|--------|---------------------------|--------------------------------------------|---------------|
| Type | Hostname | Value | TTL (seconds) |
|--------|---------------------------|--------------------------------------------|---------------|
| NS | example.com | ns1.digitalocean.com. | 1800 |
| NS | example.com | ns2.digitalocean.com. | 1800 |
| NS | example.com | ns3.digitalocean.com. | 1800 |
| A | example.com | 159.xx.xx.60. | 3600 |
| A | www.example.com | 159.xx.xx.60. | 3600 |
| MX | example.com | mailstore1.secureserver.net. | 14400 |
| MX | example.com | smtp.secureserver.net. | 14400 |
| CNAME | 12501762.example.com | sendgrid.net. | 43200 |
| CNAME | url9338.example.com | sendgrid.net. | 43200 |
| CNAME | s2._domainkey.example.com | s2.domainkey.u12501762.wl015.sendgrid.net. | 43200 |
| CNAME | s1._domainkey.example.com | s1.domainkey.u12501762.wl015.sendgrid.net. | 43200 |
| CNAME | em8980.example.com | u12501762.wl013.sendgrid.net. | 43200 |
|--------|---------------------------|--------------------------------------------|---------------|
MX = 允许使用 GoDaddy 邮箱(例如[电子邮件保护])。
CNAME = 允许使用 SendGrid。
那么我的问题是什么?
如果我在浏览器中输入:example.com,我收到 404 错误,提示 Apache/2.4.29 (Ubuntu) 服务器位于 example.com 端口 80。
www.example.com,一切正常,并重定向到 HTTPS 版本。
http://example.com,一切正常,并且重定向到 HTTPS 版本。
https://example.com,一切正常。
因此问题仅出在 example.com 上。
您尝试过 ping 功能吗?
是的。我 ping 了 www.example.com 和 example.com,结果都返回了相同的 IP 地址(我的 IP 地址)。
那么跟踪路由怎么样?
同样,它为 www.example.com 和 example.com 提供了相同的结果。它指向我的服务器。
我的.conf 文件怎么样?
这里是 example.com.conf 文件:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
这里是 example.com-le-ssl.conf 文件:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
谁能帮我这个 ?
谢谢你的帮助。