2

我在我的服务器上的 mp3 文件上执行 PHP get_headers() 并在使用非 www 地址时接收 HTTP 404,在使用 www 时接收 HTTP 200。

我可以从浏览器中的任一地址访问该文件,那为什么是 404?我可以用.htaccess 以某种方式解决这个问题吗?

1)WordPress被配置为使用非www地址(example.com)

2) 文件位于 WordPress 安装的 wp-content/uploads 区域

3) www 子域有一个指向非 www 域的 DNS CNAME (www.example.com -> example.com)


标题: http: //lhcsj.org/wp-content/uploads/2012/05/2012-5-6-sj.mp3

HTTP/1.1 404 Not Found
Date: Tue, 08 May 2012 21:11:43 GMT
Server: Apache/2.2.3 (CentOS)
Content-Length: 314
Connection: close
Content-Type: text/html; charset=iso-8859-1

标题:http ://www.lhcsj.org/wp-content/uploads/2012/05/2012-5-6-sj.mp3

HTTP/1.1 200 OK
Date: Tue, 08 May 2012 21:08:05 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Mon, 07 May 2012 17:19:47 GMT
ETag: "9c52430-e3626f-7a1332c0"
Accept-Ranges: bytes
Content-Length: 14901871
Connection: close
Content-Type: audio/mpeg
4

1 回答 1

1

www.example.com和通过 DNS CNAME 条目指向同一个 IP 地址这一事实example.com并不意味着服务器被配置为同时为两者提供服务。该服务器可以配置为处理大量 HTTP 主机,默认值可能不是www.example.com其他的。事实上,它会为未配置的主机(甚至不是默认主机)返回 404 状态,这并不奇怪。

检查VirtualHost您的 Apache Httpd 配置中是否存在针对www.example.com和的条目example.com。为特定主机配置 Wordpress 的事实只有在通过该步骤后才会发挥作用。

于 2012-05-09T00:09:20.503 回答