apache - 摆脱 Apache 虚拟主机的结束正斜杠

标签 apache virtualhost

我已经在 Windows 7 上设置了 Apache 以拥有一些用于本地开发目的的虚拟主机。
httpd-vhosts.conf 文件对所有虚拟主机都有这种格式:

<VirtualHost *:80>
   ServerName example.dev
   DocumentRoot "C:/Program Files (x86)/Apache2.2/htdocs/example.dev/"  # <--removing the forwardslash here doesn't fix this
</VirtualHost>

Windows hosts 文件中的每一个都有:

127.0.0.1       example.dev

现在,令我困扰的是,每次我在地址栏中键入 example.dev 时,它都会添加一个额外的尾部正斜杠,变成 example.com/。我为我所有的虚拟主机都得到了这个。简单地访问 localhost 不会添加结尾的正斜杠。这不会发生:localhost/
没什么大不了的,但它困扰着我,我找不到解决方案。

有什么想法吗?

最佳答案

额外的斜杠不是由您的 Apache 配置引起或无法避免的,它是浏览器的一个“功能”,这些浏览器正在组成浏览器的 HTTP 参数,这些浏览器创建了对 Web 服务器的 HTTP POST 或 GET 请求。

为了请求 www.example.com 的主页,HTTP 浏览器生成的代码类似于:

GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/4.0

浏览器只是显示主机名加上 GET/POST 之后的字符串的串联

可能有些浏览器不会显示,但这不改变HTTP请求是请求的事实/

localhost的大小写在浏览器上是不同的策略,它只是一个别名(HTTP的Host:字段不是localhost)

关于apache - 摆脱 Apache 虚拟主机的结束正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334971/

相关文章:

linux - 域作为 apache 中子域的后备

http - 为什么我的 http 请求 header 字段中缺少主机?

linux - 在 Apache 2.4 中添加基于 IP 的虚拟主机

php - 无法从 docker 容器运行 Apache/php

apache - Apache 有没有办法默默地忽略无法识别的 .htaccess 指令?

python - Django、WSGI 和 Apache 的语法错误

ubuntu - apache2:在本地服务器的同一域下托管多个站点

javascript - 为什么当我在 Apache 上运行我的 react 构建时......只出现空白页面..?

java - Android - Apache Mime 和 httpClient

apache - 如何使用基本身份验证保护在 Apache2 虚拟主机中反向代理的 Tomcat Web 应用程序?