在使用CDN(内容分发网络)加速时,如果希望将不带 www 的域名(例如 example.com)自动跳转到带 www 的域名(例如 www.example.com),可以通过以下几种方式实现。这种跳转通常称为 301 重定向 或 URL 重定向,有助于统一域名、提升 SEO 效果和用户体验。
大多数主流 CDN 服务(如腾讯云 CDN)都支持在控制台中配置 URL 重定向规则,无需修改源站代码即可实现跳转。
example.com)。example.com(不带 www 的域名)/*(匹配所有路径)301(永久重定向)或 302(临时重定向)https://www.example.com/$1($1 表示原请求的路径部分)示例:
http://example.com → 301 跳转到 https://www.example.comhttp://example.com/about → 301 跳转到 https://www.example.com/abouthttp://example.com,观察是否自动跳转到 https://www.example.com。curl 命令测试:curl -I http://example.com
如果返回 HTTP/1.1 301 Moved Permanently 并包含 Location: https://www.example.com,说明配置成功。如果腾讯云 CDN 的控制台不支持直接配置 URL 重定向(部分旧版本可能不支持),可以在 源站服务器(如 Nginx 或 Apache)上配置 301 重定向。
在 Nginx 的配置文件(如 /etc/nginx/conf.d/example.com.conf)中添加如下规则:
server {
listen 80;
server_name example.com; # 不带 www 的域名
# 301 永久重定向到 www 版本
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com; # HTTPS 不带 www 的域名
# SSL 证书配置(略)
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# 301 永久重定向到 www 版本
return 301 https://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com; # 带 www 的域名
# 其他配置(如反向代理到源站)
location / {
proxy_pass http://your_origin_server;
}
}
server {
listen 443 ssl;
server_name www.example.com; # HTTPS 带 www 的域名
# SSL 证书配置(略)
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# 其他配置(如反向代理到源站)
location / {
proxy_pass http://your_origin_server;
}
}配置完成后:
在 Apache 的配置文件(如 /etc/apache2/sites-available/example.com.conf)或 .htaccess 文件中添加如下规则:
<VirtualHost *:80>
ServerName example.com
# 301 永久重定向到 www 版本
Redirect 301 / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
# SSL 证书配置(略)
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
# 301 永久重定向到 www 版本
Redirect 301 / https://www.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
# 其他配置(如反向代理到源站)
ProxyPass / http://your_origin_server/
ProxyPassReverse / http://your_origin_server/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
# SSL 证书配置(略)
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
# 其他配置(如反向代理到源站)
ProxyPass / http://your_origin_server/
ProxyPassReverse / http://your_origin_server/
</VirtualHost>配置完成后:
没有搜到相关的文章