第十五章 apache别名和重定向

第十五章 apache别名和重定向

15.1 mod_alias模块

Mod_alias提供了4条指令用于别名的定义

Alias                        URL映射到你所定义的目录或文件上                

                   Alias    /web     /data/app/web

                  普通别名定义          

                            Alias指令相同,但可使用正则表达式规则定义       

AliasMatch          AliasMatch  ^/manual/(.*)   /data/web/munual$1

ScriptAlias                   Alias类似,只是将所定义的目录识别为CGI脚本目录 

                    ScriptsAlias   /cgi-bin/   "/data/http-ssl/cgi-bin/"       

                  CGI脚本目录的别名定义

                            允许使用正则表达式来定义CGI脚本目录              

ScriptAliasMatch      ScriptAliasMatch ^/cgi-bin/(.*)  "/data/http-ssl/cgi-bin/$1"

15.2 重定向的定义

#wget -S --spider 192.168.16.30/a

Spider mode enabled. Check if remote file exists.

--2012-09-26 15:25:44--  http://192.168.16.30/a

Connecting to 192.168.16.30:80... connected.

HTTP request sent, awaiting response... 

  HTTP/1.1 301 Moved Permanently           #服务器发出地址移动的响应

  Date: Wed, 03 Oct 2012 17:29:04 GMT

  Server: Apache/2.4.2 (Unix)

  Location: http://192.168.16.30/a/

  Keep-Alive: timeout=5, max=100

  Connection: Keep-Alive

  Content-Type: text/html; charset=iso-8859-1

Location: http://192.168.16.30/a/ [following]      #跳转到新地址

Spider mode enabled. Check if remote file exists.

--2012-09-26 15:25:44--  http://192.168.16.30/a/   #开始连接新地址

Connecting to 192.168.16.30:80... connected.

HTTP request sent, awaiting response... 

  HTTP/1.1 200 OK                          #连接成功

  Date: Wed, 03 Oct 2012 17:29:04 GMT

  Server: Apache/2.4.2 (Unix)

  Last-Modified: Wed, 03 Oct 2012 11:56:44 GMT

  ETag: "2d-4cb265528a700"

  Accept-Ranges: bytes

  Content-Length: 45

  Keep-Alive: timeout=5, max=100

  Connection: Keep-Alive

  Content-Type: text/html

Length: 45 [text/html]

Remote file exists and could contain further links,

but recursion is disabled -- not retrieving.

   由于请求的是192.168.16.30/a,浏览器会当成一个文件,于是浏览器发出请求,但a在服务器中是一个目录,于是服务器并不会直接返回a目录的内容,而是通过重定向告诉浏览器是一个目录,当浏览器收到响应后会重新发送一个URL请求http://192.168.16.30/a/,之后服务器返回正确信息。

重写指令

1.RewriteEngine指令,开关onoff

    RewriteEngine on

2.RewriteRule

RewriteRule  Pattern  substitution  [flags]

(1)Pattern作用于当前请求的URL正则表达式,这个URL可能和用户请求的不同,因为可能已经被RewriteRule或是Alias指令修改过了。

(2)Substitution参数是当原始URLPattern相匹配时,用来替换的字符串

Pattern的反引用($N),N的范围是0-9

      RewriteRule  ^/~/([^/]+)/?(.*)    /u/$1/$2

对最后匹配的RewriteCond的反向引用(%N),N范围0-9 

规则条件测试字符串(%{VARNAME})中的服务器变量,%{VARNAME}Apache环境中的VARNAME的值进行填充

映射函数调用(${mapname:key|default}),用户可以通过${mapname:key|default}的形式来调用由RewriteMap定义的映射

(3)[flags]参数为可选参数

 


本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1012154,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值