Apache HTTP服务器 2.0版本
说明: | 提供对文件系统到文档树的映射和URL的重定向 |
---|---|
状态: | Base |
模块名: | alias_module |
源文件: | mod_alias.c |
此模块提供的指令可以操控作为请求到达服务器的URL。
Alias
和ScriptAlias
指令用于在URL和文件系统路径之间实现映射,
使不在DocumentRoot
目录下的内容也能成为文档树的一部分,
其中,ScriptAlias
指令有更多的一层含义,
它标明此目标目录下只有CGI脚本。
Redirect
指令引导客户端以一个不同的URL产生一个新的请求,
常用于一个资源被移动到一个新的位置的时候。
说明: | 映射URL到文件系统的特定区域 |
---|---|
语法: | Alias URL-path file-path|directory-path |
上下文: | 服务器配置, 虚拟主机 |
状态: | Base |
模块: | mod_alias |
Alias
指令使文档可以被存储在DocumentRoot
以外的本地文件系统中。
以(%已经被解码的)url-path路径开头的URL可以被映射到以
directory-filename开头的本地文件。
例子:
Alias /image /ftp/pub/image
对http://myserver/image/foo.gif的请求,服务器将返回/ftp/pub/image/foo.gif文件.
注意:如果url-path中有后缀的 /,则服务器要求有后缀 /以扩展此别名。
即,Alias /icons/ /usr/local/apache/icons/
并不能对/icons
实现别名。
注意,可能需要额外指定一个<Directory>
段来覆盖别名的最终对象。
由于只有出现在<Directory>
段之前的别名才会被检测,
所以它只对最终对象生效。(由于执行别名操作之前,<Location>
段会被首先扫描一次,所以它们也是有效的)
说明: | 使用正则表达式映射URL到文件系统 |
---|---|
语法: | AliasMatch regex
file-path|directory-path |
上下文: | 服务器配置, 虚拟主机 |
状态: | Base |
模块: | mod_alias |
这个指令与Alias
等效,
但是它使用了标准的正则表达式,而不是简单的前缀匹配。如果此正则表达式与URL-path相匹配,
则服务器会用给定的字符串替换加了括弧的匹配,并视之为一个文件名。
例如,要使用/icons
目录,可以:
AliasMatch ^/icons(.*) /usr/local/apache/icons$1
说明: | 发送一个外部重定向使客户端转向到一个不同的URL |
---|---|
语法: | Redirect [status] URL-path URL |
上下文: | 服务器配置, 虚拟主机, 目录, .htaccess |
覆盖项: | FileInfo |
状态: | Base |
模块: | mod_alias |
Redirect指令映射一个老的URL为一个新的URL,此新的URL被返回到客户端使之转向新的地址。 对任何以(已%解码的)URL-path开头的文档的请求, 将返回一个新的以(已%解码的)URL开头的URL的重定向错误。
例子:
Redirect /service http://foo2.bar.com/service
如果客户端请求http://myserver/service/foo.txt, 则会被告知应该访问http://foo2.bar.com/service/foo.txt。
重定向指令优先于Alias 和ScriptAlias 指令, 而无关于其在配置文件中的顺序。
而且,URL-path必须是一个绝对路径,而不是相对路径,即使是用在.htaccess文件或者<Directory>
段中的时候。
如果没有指定status参数,则重定向是"临时性的"(HTTP status 302)。 即,对客户端来说,此资源的位置变动是临时性的。 此status参数可以返回以下HTTP状态码:
status可以被指定为数字状态以返回其他状态码。
如果此状态在300-399之间,则必须提供url参数, 否则将被忽略。
注意,此状态码必须是Apache已知的
(参见 http_protocol.c中的send_error_response
函数)。
例子:
Redirect permanent /one http://example.com/two
Redirect 303 /three http://example.com/other
说明: | 基于正则表达式匹配对当前的URL发送一个外部重定向 |
---|---|
语法: | RedirectMatch [status] regex URL |
上下文: | 服务器配置, 虚拟主机, 目录, .htaccess |
覆盖项: | FileInfo |
状态: | Base |
模块: | mod_alias |
此指令与Redirect
等效,
但是它使用了标准的正则表达式,而不是简单的前缀匹配。
如果此正则表达式与URL-path相匹配,
则服务器会用给定的字符串替换加了括弧的匹配,并视之为一个文件名。
例如,重定向所有的GIF文件到另一个服务器上同名的JPEG文件,可以:
RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg
说明: | 发送一个外部永久性重定向使客户端转向到一个不同的URL |
---|---|
语法: | RedirectPermanent URL-path URL |
上下文: | 服务器配置, 虚拟主机, 目录, .htaccess |
覆盖项: | FileInfo |
状态: | Base |
模块: | mod_alias |
此指令告知客户端此重定向是永久性的(status 301). 与Redirect permanent
等效.
说明: | 发送一个外部临时性重定向使客户端转向到一个不同的URL |
---|---|
语法: | RedirectTemp URL-path URL |
上下文: | 服务器配置, 虚拟主机, 目录, .htaccess |
覆盖项: | FileInfo |
状态: | Base |
模块: | mod_alias |
此指令告知客户端此重定向只是临时性的(status 302). 与Redirect temp
等效.
说明: | 映射一个URL到文件系统并视之为CGI脚本 |
---|---|
语法: | ScriptAlias
URL-path file-path|directory-path |
上下文: | 服务器配置, 虚拟主机 |
状态: | Base |
模块: | mod_alias |
ScriptAlias
指令的行为与Alias
指令相同,
但同时它又标明此目录中含有应该由mod_cgi
中cgi-script处理器处理的CGI脚本。
以URL-path开头的(已被%解码)的URL会被映射到由第二个参数指定的
具有完整路径名的本地文件系统中的脚本。
例子:
ScriptAlias /cgi-bin/ /web/cgi-bin/
对http://myserver/cgi-bin/foo
的请求会引导服务器执行/web/cgi-bin/foo
脚本.
说明: | 使用正则表达式映射一个URL到文件系统并视之为CGI脚本 |
---|---|
语法: | ScriptAliasMatch
regex file-path|directory-path |
上下文: | 服务器配置, 虚拟主机 |
状态: | Base |
模块: | mod_alias |
此指令与ScriptAlias
等效,
但是它使用了标准的正则表达式,而不是简单的前缀匹配。
如果此正则表达式与URL-path相匹配,
则服务器会用给定的字符串替换加了括弧的匹配,并视之为一个文件名。
例如,要使用标准的/cgi-bin
,可以:
ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1