一、Apache 服务器;
使用的指令: Alias /webpath /full/filesystem/path
是由”alias_module 模块,提供路径别名的功能的。
所以,如果模块 alias_module 不存在,提供“路径别名”也是没有用的,甚至会报错“404 Not Found”。所以要先判断下该模块是否存在。
由于 Apache 提供指令“<IfModule>” 判断模块是否存在, 存在则使用“路径别名”
<IfModule alias_module> Alias /bbs /lvm/html </IfModule>
Apache 必须使用 <Directory filepath> 容器提供访问权限,才能通过 http://192.168.203.99:8080/bbs 访问路径别名下的网页文件的。
否则会报: 403 Forbidden
# need to provide a <Directory> section to allow access to the filesystem path.
[root@node2 ~]# curl -I http://192.168.203.99:8080/bbs/index.php HTTP/1.1 403 Forbidden #------> 错误代码 403 Date: Mon, 12 May 2014 02:03:58 GMT Server: Apache Content-Type: text/html; charset=iso-8859-1
增加文件系统路径允许访问权限:
<IfModule alias_module> Alias /bbs /lvm/html </IfModule> <Directory /lvm/html> AllowOverride None Options None Order allow,deny Allow from all </Directory>
再次测试是否能够正常访问?
[root@node2 ~]# curl -I http://192.168.203.99:8080/bbs/index.php HTTP/1.1 200 OK #-------> 响应码:200 Date: Mon, 12 May 2014 02:05:41 GMT Server: Apache X-Powered-By: PHP/5.3.10 Content-Type: text/html
所以,Apache 服务器的"路径别名"定义:
开启提供路径别名的模块----->定义路径别名---->提供路径的访问权限。
二、Nginx 服务器;
Nginx 服务器定义路径别名比较简单;
但是“alias ”指令只能用在“location ”段里。
location /bbs { alias /lvm/bbs; } [root@node2 ~]# curl -I http://192.168.203.99/bbs/index.html HTTP/1.1 200 OK Server: nginx Date: Mon, 12 May 2014 02:22:00 GMT Content-Type: text/html Content-Length: 31 Last-Modified: Mon, 12 May 2014 02:16:02 GMT Connection: keep-alive Accept-Ranges: bytes