php - 使用虚拟主机时如何设置apache的环境变量?

标签 php apache .htaccess http-headers

我正在使用虚拟主机在 apache 上托管我的 php 站点。例如我想设置 http://www.example.com/content/只有这个特定目录强制响应 HTTP/1.0,因为我有一个应用程序需要响应 header 中的内容长度。我尝试在“内容”目录中添加 .htaccess 文件,但似乎不起作用。文件中只有两行:

SetEnv downgrade-1.0 1
SetEnv force-response-1.0 1

此外,有什么方法可以检查变量是否发生变化?我已经使用 phpinfo() 进行了检查,但它说仍在使用 HTTP/1.1。我的 .htaccess 文件出了什么问题?

预期结果是无论 HTTP/1.0 或 1.1 请求发送到服务器,服务器都会强制响应 HTTP/1.0,并在 HTTP header 中包含 Content-Length。

谢谢。

最佳答案

这些指令在您的 /content/.htaccess 中协同工作:

SetEnv downgrade-1.0 1
SetEnv force-response-1.0 1

这会强制对发出 HTTP/1.0 请求的客户端进行 HTTP/1.0 响应。某些 HTTP/1.0 客户端在给出 HTTP/1.1 响应时可能无法正确运行,这可用于与它们进行互操作。

Reference

要测试使用命令行curl来验证 header 而不是phpinfo():

curl -kI -A "Chrome" -L 'localhost/content/'
HTTP/1.0 200 OK
Date: Sun, 20 Dec 2015 14:52:50 GMT
Server: Apache/2.4.12 (Unix) PHP/5.3.29 mod_wsgi/3.5 Python/2.7.9 OpenSSL/1.0.1j
X-Powered-By: PHP/5.3.29
Connection: close
Content-Type: text/html

关于php - 使用虚拟主机时如何设置apache的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34379658/

相关文章:

php - get_page_children() 不返回所有子页面

php - mysql 参数的问题

php - 用户以本地时区查看

python - requests.post 从 python 脚本发送到使用 Apache 托管的 Django 网站,给出 403 Forbidden

php - codeigniter 删除 index.php 表单 url

php - 有没有办法将 UMA 头像配方**包括其转义字符**保存到我的数据库?

php - Docker 容器中的 Apache、PHP、WordPress 缓存问题

Apache2 - 如何完全关闭端口 80 并强制浏览器自动使用 HTTPS?

.htaccess - htaccess 重写规则 - 允许在 URL 中使用大写字母

.htaccess - 如何仅压缩 Apache 提供的 150 字节以上的文档?