You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多域名绑定场景下如何配置.htaccess Rewrite规则满足指定重写需求

最终可实现需求的.htaccess完整配置
RewriteEngine On

# 全局强制HTTPS跳转
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# ----------------------主域名example.com规则----------------------
# 访问example.com/s、example.com/s/直接返回404
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^s/?$ - [R=404,L]

# example.com/s/abc 重写为 init.php?type=s&account=abc
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^s/([0-9a-zA-Z]{1,15})$ init.php?type=s&account=$1 [L]

# example.com/api/s/abc 重写为 api.php?type=s&account=abc
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^api/s/([0-9a-zA-Z]{1,15})$ api.php?type=s&account=$1 [L]

# ----------------------停放域名规则----------------------
# 停放域名根路径重写为 init.php?type=d
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^$ init.php?type=d [L]

# 停放域名/api/abc 重写为 api.php?type=d&account=abc
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^api/([0-9a-zA-Z]{1,15})$ api.php?type=d&account=$1 [L]

# 停放域名/abc 重写为 init.php?type=d&account=abc
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^([0-9a-zA-Z]{1,15})$ init.php?type=d&account=$1 [L]

# ----------------------原有通用规则----------------------
RewriteCond %{REQUEST_URI} !^.*\.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{REQUEST_FILENAME}.php [L]

规则注意事项

  • 所有规则按从上到下优先级匹配,L标记表示匹配到当前规则后停止向下匹配,避免规则冲突
  • [NC]标记表示匹配域名时不区分大小写,适配不同大小写的访问请求
  • 路径匹配的字符长度限制为1-15位大小写字母+数字,和你原有规则的限制保持一致
  • 如果后续需要新增其他停放域名,不需要修改规则,只要不是example.com的域名都会自动匹配停放域名的规则

内容的提问来源于stack exchange,提问作者Kelvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:06:08