如何仅将www.mydomain.com重定向至mydomain.com/join?
解决www域名重定向至指定页面同时保留主域名跳转规则的问题
下面分两种常见服务器环境给出配置方案,确保www开头的所有请求跳转到mydomain.com/join,同时主域名根路径请求跳转到mydomain.com/home,其他子页面不受影响:
Apache (.htaccess) 配置
在站点根目录的.htaccess文件中添加以下规则:
RewriteEngine On # 将所有www.mydomain.com的请求重定向至join页面 RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC] RewriteRule ^(.*)$ https://mydomain.com/join [R=301,L] # 将mydomain.com根路径请求重定向至home页面 RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ https://mydomain.com/home [R=301,L]
[NC]标记表示匹配域名时不区分大小写,兼容不同大小写的请求[L]标记确保这条规则执行后不再处理后续规则,避免冲突- 主域名的规则仅匹配根路径
^/$,保证mydomain.com/about这类子页面不会被强制跳转
Nginx 配置
在Nginx的站点配置文件中添加以下内容:
# 处理www域名的所有请求 server { listen 80; listen [::]:80; server_name www.mydomain.com; return 301 https://mydomain.com/join; } # 处理主域名请求 server { listen 80; listen [::]:80; server_name mydomain.com; # 仅根路径跳转至home页面 location = / { return 301 https://mydomain.com/home; } # 其他路径正常处理 location / { # 此处填写你的站点正常处理逻辑,比如: # root /var/www/html; # index index.html; } }
- 单独的server块处理www域名,直接返回301重定向,逻辑清晰
location = /是精确匹配,只有访问主域名根路径时才触发跳转
注意事项
- 配置完成后重启对应服务器(Apache用
service apache2 restart,Nginx用service nginx restart) - 测试前清除浏览器缓存,避免旧的重定向缓存干扰结果
- 确保域名解析记录中,
www.mydomain.com和mydomain.com都指向你的服务器IP
内容的提问来源于stack exchange,提问作者PeCe
相关产品推荐
相关产品推荐

