发布时间: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服务器非常有效。
2020-04-24
CentOS 7 时间同步
Centos 7 Zabbix Agent 客户端源码编译安装配置
使用shell脚本自动配置mysql主从
Win10蓝屏,提示收集错误信息,反复重启报错
USB3.0和USB2.0接口的区别和特点
Fail2ban防止WordPress受到xmlrpc.php CC攻击
E47指纹软件如何安装及录入指纹?
ERROR: module is read only
Linux renice重新设定进程优先级命令详解