DNS 和 mod_rewrite 不协作

DNS 和 mod_rewrite 不协作

我已在 CentOS 服务器上的 DNS 中添加了 CNAME 记录,以将 subdomain.mydomain.com 重定向到另一台服务器。

我还使用 mod_rewrite 将 mydomain.com 重写为 www.mydomain.com:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]

它被放置在根公共 html 目录中的 .htaccess 中

现在的问题是,每当我查找 subdomain.mydomain.com 时,它都会将我重定向到 www.mydomain.com

我尝试添加另一个RewriteCond:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^subdomain\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]

但它没有帮助......

有人有什么想法吗?

答案1

也许在网络应用程序中正在发生重定向。

  • 尝试从 subdomain.mydomain.com 下载静态文件(css、js、jpg 等)
  • 使用 RewriteLog 和 RewriteLogLevel 指令进行调试

答案2

matthew 是对的,如果 dns 别名配置正确,请求就永远不应该到达 mod_rewrite。问题出在键入时意外犯的简单 DNS 记录语法错误。现在已处理完毕,运行正常 :)

相关内容