HTTP标头在非www URL上返回404?

时间:2012-05-08 20:09:12

标签: wordpress http .htaccess dns http-status-code-404

我在服务器上的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

1 个答案:

答案 0 :(得分:1)

www.example.comexample.com通过DNS CNAME条目指向相同的IP地址这一事实并不意味着服务器配置为同时提供服务。此服务器可以配置为处理大量HTTP主机,默认值可能不是www.example.com,而是其他内容。事实上,对于未配置它的主机(甚至不是默认主机),它返回404状态是不足为奇的。

检查Apache Httpd配置中是否有VirtualHostwww.example.comexample.com的条目。 Wordpress为特定主机配置的事实仅在通过该步骤后才会发挥作用。