Apache%{SERVER_NAME}未解析为ServerName

时间:2018-02-25 11:37:50

标签: apache httpd.conf

我在Apache 2.4中有以下VirtualHost

<VirtualHost example.com:80>
  ServerName www.example.com
  ServerAlias example.com
  DocumentRoot /dev/null
  RewriteEngine on
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
</VirtualHost>

我希望它能重定向

http://www.example.com/ -> https://www.example.com/
http://example.com/ -> https://www.example.com/

然而,它重定向

http://www.example.com/ -> https://www.example.com/
http://example.com/ -> https://example.com/

我没理解......它重定向到%{HTTP_HOST}。 %{SERVER_NAME}不应该是ServerName吗?这是预期的行为,还是我在其他地方有错误?此外,VirtualHost语句中的主机名有什么相关性?我还没有找到相关信息。感谢。

1 个答案:

答案 0 :(得分:1)

好的,正如rewritecondusecanonicalname所述 "Explore APIs"

UseCanonicalName On

解决问题(但还有其他含义)。除此之外,%{SERVER_NAME}实际上包含HTTP_HOST。 如果有人知道如何使用UseCanonicalName Off查询ServerName,请告诉我。