官方reference:
http://httpd.apache.org/docs/2.4/en/urlmapping.html
httpd主要是一个静态文件服务器。当然不限于此,通过各种mod,httpd也可以作为一个前端服务器,把请求转发到servlet container、cgi等。不过主要还是静态文件服务器,所以官方的reference也是从处理静态文件说起
1. DocumentRoot
首先要把浏览器里的url,映射到server的文件系统上
这是通过DocumentRoot directive配置的(httpd的各种配置,都是用directive完成的,各种mod提供了不同的directive)
DocumentRoot "/usr/local/httpd/htdocs"
这里把url的"/",映射到了/usr/local/httpd/htdocs目录下,比如:
http://localhost/abc,会映射到/usr/local/httpd/htdocs/abc这个文件
http://localhost/web/,会映射到/usr/local/httpd/htdocs/web/这个文件夹下(区别在于结尾的"/")
2. DirectoryIndex
另外有一个directive叫做DirectoryIndex,是用来自动处理文件夹的
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
这样配置之后,如果url请求访问一个目录,则httpd会先到这个目录下寻找index.html,找到则返回;如果没有找到,则显示目录列表
这也是为什么,访问http://localhost,会显示success page
3. 文件和文件夹
这里有一个问题,http://localhost/servlet,httpd怎么知道请求的是servlet文件,还是servlet目录呢?
一般来说,如果结尾有"/",就认为请求的是目录;否则认为是文件。但是httpd做了一些透明处理,可能会造成误导
http://localhost/servlet/,这种情况比较简单。如果在DocumentRoot下存在servlet目录,则匹配成功;找不到则直接返回404
http://localhost/servlet,稍微有点不一样:
如果在DocumentRoot下存在文件,则返回;
如果没有文件,但是有servlet文件夹,则会透明地当作文件夹处理;
如果都没有,才会返回404
4. 映射到其他文件夹
也可以通过Alias和AliasMatch,配置特定的URL不在DocumentRoot下,而是到别的地方查找。不过实践发现会返回403,不知道是为什么,网上也有很多人碰到这个问题。有空再研究下,今天先跳过了
- 大小: 11.3 KB
- 大小: 6.2 KB
分享到:
相关推荐
URL重写规则模版httpd-vhosts.conf
apache httpd 工具
rpm -Uvh --force --nodeps *.rpm httpd rpm安装包
在linux下面安装apache服务器httpd源代码
URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful,efficient, and extensible web server. 修改配置文件 # cd /etc/httpd/conf # ls httpd.conf...
用buildroot编译生成httpd和PHP解释器,在arm板上配置httpd和PHP的解释器的配置文件,是httpd支持PHP
centos7.6下httpd的离线安装包,适用centos7.5,centos7.4,centos7.8等
Apache HTTPD cluster config
#参见<url:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置...
httpd-ssl.conf
安装步骤如下: rpm -ivh httpd-2.4.6-93.el7.centos.x86_64.rpm
httpd.ini是指wordpress程序在windows虚拟主机上的伪静态设置。windows主机服务器的网站以搭建在虚拟主机上,当我们用习惯了apache下的.htaccess的时候,很难想象windows主机上怎么实现它的强大功能。实际上windows...
LAMP apache编译 httpd-2.2.22
httpd.conf 详解 httpd.conf 详解 httpd.conf 详解
CentOS 7安装httpd所需RPM包
httpd拒绝主机方式
httpd-2.2.27下载,用于搭建Apache,使用Apache可以运行网页,可以结合PHP、Tomcat、Resin等(文件全称:httpd-2.2.27.tar.gz)
在Linux中安装HTTPD服务 Apache http Server的安装
apche httpd.conf找不到,就直接下载使用在这个文件,httpd.conf 配置文件
apache httpd php wordpress