【发布时间】:2011-02-17 13:20:45
【问题描述】:
我有一个在 lighttpd-1.4.19 上运行的 WordPress 博客,在 www00:81 上收听。在同一台主机上,apache-2.2.11 侦听端口 80,这会创建从 http://blog.mydomain.org:80 到 http://blog.mydomain.org:81 的代理连接(两者都是同一台物理机)。
Apache 虚拟主机如下所示:
<VirtualHost *:80>
ServerName blog.mydomain.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://blog.mydomain.org:81/
ProxyPassReverse / http://blog.mydomain.org:81/
</VirtualHost>
使用debug.log-request-handling = "enable",我在浏览http://blog.mydomain.org:80 时收到以下日志条目(注意Host 标头):
2010-05-10 08:47:14: (request.c.294) fd: 6 request-len: 853
GET / HTTP/1.1
Host: blog.mydomain.org:81
[...]
2010-05-10 08:47:15: (request.c.294) fd: 8 request-len: 754
GET /wp-content/uploads/2010/01/image.gif?w=280 HTTP/1.1
Host: www00:81
我的问题:据我所知,PHP 环境变量 $_SERVER['HTTP_HOST'] 设置为 Host 标头变量。不幸的是,WordPress 在他们的系统中使用该变量来创建博客上图片的 URL。当然,这些 URL 在防火墙后将无法访问。如何强制主机标头为blog.mydomain.org 而不是blog.mydomain.org:81,分别为www00:81?我已经将set server.name = "blog.mydomain.org" 添加到我的lighttpd.conf,但这不起作用。
任何建议都非常感谢,谢谢。
【问题讨论】:
标签: php apache proxy lighttpd http-host