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