如何通过.htaccess将子域名所有流量重定向至指定文件?
子域名全流量重定向至指定文件的正确配置
你当前的配置仅匹配子域名的根路径(sub.mydomain.com/),所以其他路径的流量不会被处理。要实现所有路径的流量都指向filename.php,只需修改RewriteRule的匹配规则:
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteRule ^(.*)$ /filename.php [R=301,L]
关键修改说明:
- 将原规则中的
^/?$替换为^(.*)$:这个正则表达式会匹配子域名下的任意路径(包括根路径、/page、/dir/file.html等所有请求)。 [R=301,L]标记:R=301表示永久重定向(利于SEO),L表示这是最后一条规则,匹配后不再执行后续Rewrite规则。
可选优化:
如果需要保留原请求的查询参数(比如sub.mydomain.com/?id=123重定向后变成sub.mydomain.com/filename.php?id=123),可以添加QSA标记:
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteRule ^(.*)$ /filename.php [R=301,L,QSA]
如果希望隐藏重定向过程(地址栏不显示filename.php,仅内部转发),可以去掉R=301,只保留L标记:
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteRule ^(.*)$ /filename.php [L]
内容的提问来源于stack exchange,提问作者Travis
相关产品推荐
相关产品推荐

