2013-04-09 32 views
0

我有一个命名的虚拟主机,处理一堆不同主机名的流量。如何在Apache配置中检索服务器别名?

在Apache配置中,我需要根据用户请求的主机名创建RewriteRules。不幸的是,%{SERVER_NAME}变量的内容始终与配置中定义为ServerName的主要主机名匹配,而不是用户请求的别名。

例如为:我要为site.company.comsite2.company.comsite3.company.com

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerName site.company.com 
    ServerAlias site?.company.com 

    RewriteCond %{SERVER_NAME} pattern 
    RewriteRule blah_depending_on_hostname_requested_by_user 
</VirtualHost> 

问题%{SERVER_NAME}总是site.company.com,即使用户请求的别名,如site2.company.com之一。

我该如何解决这个问题?似乎没有可用的%{SERVER_ALIAS}变量。

回答

2

你可能是指%{HTTP_HOST}。这是浏览器提供的确切网站名称。从the manual

如果你想对阵的主机名,端口或查询字符串,分别使用 与%{HTTP_HOST}%{SERVER_PORT}一的RewriteCond或 %{QUERY_STRING}变量。

+0

我不能相信我错过了那个:-(正是我在找的那个,谢谢。 – 2013-04-10 08:43:03

相关问题