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

求mod_rewrite规则:将FQDN重写为不含域名的主机名(避免循环)

Apache mod_rewrite 重定向方案:去掉FQDN后缀到短主机名

直接上可用的规则,把这段放到你的.htaccess文件里(或者Apache主配置的对应虚拟主机块中):

RewriteEngine On

# 匹配以.example.com结尾的FQDN,捕获前缀部分
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
# 防止重定向循环:确保目标主机名不等于当前请求的主机名
RewriteCond %{HTTP_HOST} !^%1$ [NC]
# 重定向到短主机名的对应路径,301是永久重定向
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

规则解释:

  • RewriteEngine On:开启mod_rewrite功能,必须放在规则最前面
  • %{HTTP_HOST}:Apache内置变量,获取当前请求的完整主机名(比如appname.example.com)
  • ^(.+)\.example\.com$ [NC]:正则匹配主机名,(.+)捕获example.com前面的所有字符(也就是你的appname),[NC]表示不区分大小写匹配
  • %{HTTP_HOST} !^%1$ [NC]:防循环核心规则——检查当前主机名不等于捕获到的短主机名,避免重定向后再次触发规则
  • R=301:指定永久重定向(适合生产环境,对SEO友好),测试阶段可以换成R=302临时重定向
  • L:标记为最后执行的规则,匹配后不再处理后续rewrite规则

注意事项:

  • 确保你的短主机名(比如appname)已经正确解析到当前服务器,否则重定向后用户无法访问
  • 如果站点使用HTTPS,把规则里的http://改成https://
  • 确认Apache已启用mod_rewrite模块(可通过a2enmod rewrite命令开启)
  • 若使用.htaccess,需保证服务器配置中对应目录设置了AllowOverride All,否则.htaccess规则不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:55:18