2020-06-22 17:31:20
在许多情况下,Apache主机提供的所有资源都位于该主机的DocumentRoot中。 DocumentRoot是在
通常,虚拟主机配置指定一个DocumentRoot,按照惯例会指定public_html/或public/命名的目录。 如果example.com虚拟主机的文档根目录是/srv/www/example.com/public_html/,则对http://www.example.com/index.htm的请求将返回位于/srv/www/example.com/public_html/index.htm。
如果管理员需要在code/资源请求访问/srv/git/public/下的文件,即可以在http://example.com/code/访问它,则需要设置别名。 如下示例:
DocumentRoot /srv/www/example.com/public_html/ Alias /code /srv/git/public <Directory /srv/git/public> Order allow,deny Allow from all </Directory>
如果没有Alias指令,对http://example.com/code/的请求将返回/srv/www/example.com/public_html/code/文件夹中的可用资源。 但是,别名将指示Apache提供来自/srv/git/public目录的内容。
使用Alias指令时需要考虑几个重要因素:
Directory配置块需要在Alias指令之后创建。 这使得可以允许访问和以其他方式配置那些目录。 在上面的示例中是/srv/git/public。
通常,在Alias指令中避免使用尾部斜杠。 如果请求http://example.com/code应用的是Alias /code/ /srv/git/public/指令,请求URL没有尾部斜杠,即没有匹配Alias,资源将从DocumentRoot提供。
Alias指令需要在根级服务器配置(例如httpd.conf)或
除了Alias之外,Apache还提供了一个AliasMatch指令,它提供类似的功能。 AlaisMatch提供了将给定资源的一类请求别名到DocumentRoot之外的位置的额外功能。 让我们考虑另一个虚构的example.com虚拟主机配置:
DocumentRoot /srv/www/example.com/public_html/ AliasMatch /code/projects/(.+) /srv/git/projects/$1 <DirectoryMatch "^/srv/git/projects/.+$"> Order allow,deny Allow from all </Directory>
在此示例中,对http://example.com/code/projects/my_app和http://example.com/code/projects/my_app2等网址的请求将分别由/srv/git/projects/my_app和/srv/git/projects/my_app2提供资源。 然而,http://example.com/code/projects将从/srv/www/example.com/public_html/code/projects/而不是/srv/git/projects/提供,因为在别名中的/code/projects/(.+有尾部斜杠。
虽然Alias的用例有点少,但是该功能对于维护安全且易于维护的Web服务器非常有效。
Debian 7 (Wheezy)安装配置Apache mod_fastcgi PHP-FPM
07-20
Linux alias设置指令的别名命令详解
07-18
Linux Apache安装加载mod_deflate模块
04-11
在Apache服务器使用mod_rewrite模块重定向URL
04-28
Nginx和Apache如何设置ajax跨域
05-09
Apache优化:修改最大并发连接数
05-01
Apache禁止访问目录列出文件列表
07-22
Apache配置结构
05-15
25个Apache性能优化技巧推荐
06-24
CentOS 7.0安装LAMP服务器(PHP+MariaDB+Apache)
06-07
CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
05-06
Debian 8使用Apache部署Ruby on Rails
02-29
Linux Apache开启gzip压缩提高网页下载速度
07-15
Linux chmod设置权限命令详解
02-18
Zabbix3.0监控Apache2.4服务器状态
07-17
acme-tiny在CentOS、Apache下自动更新https证书
02-12
ERROR: module is read only
06-21
Linux modprobe自动处理可载入模块命令详解
05-25
Linux insmod载入模块命令详解
07-04
Linux lsmod显示已载入系统的模块命令详解
07-24