我在服务器上的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
答案 0 :(得分:1)
www.example.com
和example.com
通过DNS CNAME条目指向相同的IP地址这一事实并不意味着服务器配置为同时提供服务。此服务器可以配置为处理大量HTTP主机,默认值可能不是www.example.com
,而是其他内容。事实上,对于未配置它的主机(甚至不是默认主机),它返回404状态是不足为奇的。
检查Apache Httpd配置中是否有VirtualHost
个www.example.com
和example.com
的条目。 Wordpress为特定主机配置的事实仅在通过该步骤后才会发挥作用。