




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第6章章 Apache 服务服务 本章要点:本章要点: Apache主配置文件主配置文件 httpd.conf 访问控制访问控制 虚拟主机虚拟主机 重定向重定向 重写规则重写规则2361 Apache概述概述 Apache是一款著名的是一款著名的Web服务器软件。服务器软件。 在在Internet上,上, Apache是占有率最高的是占有率最高的Web服务器。服务器。 当前,当前,Apache主要有两种流行的版本,主要有两种流行的版本, 第一种是第一种是1.3版,这是比较早期但十分成熟版,这是比较早期但十分成熟稳定的版本,目前使用率仍很高;稳定的版本,目前使用率仍很高; 第二种是第二种是2
2、.0版,这是版,这是Apache最新的版本,最新的版本,增加和完善了一些功能。增加和完善了一些功能。RHEL 7.0中的中的Apache服务采用的是服务采用的是2.4.6版版4611 Apache的功能的功能 下面列举出Apache的主要功能:1)支持HTTP1.1标准。2)支持多种脚本语言如,perl、php、jsp等。3)支持多种用户认证机制,如.htaccess文件、mysql数据库、openldap目录等。4)支持虚拟主机。5)支持访问控制。6)支持重定向和重写规则。7)支持SSL。5612 Apache的安装的安装在RHEL 7.0中与Apache相关的有以下3个软件包:(1)htt
3、pd-2.4.6-17.el7.x86_64.rpm这是Apache服务器的软件包。(2)httpd-manual-2.4.6-17.el7.noarch.rpm这是Apache帮助手册的软件包。(3)httpd-tools-2.4.6-17.el7.x86_64.rpm 这是Apache工具软件包。可通过#rpm ivh httpd*.rpm或采用yum来进行安装,如下:#yum install httpd httpd-tools httpd-manual执行如下命令,来安装上述3个软件包6613 Apache的运行的运行 在RHEL 4.0中,有两种典型启动Apache的方法:方法一:ro
4、otserver1 # service httpd start方法二:rootserver1 # apachectl start 如果要设置每次开机时自动运行Apache服务器,可执行如下指令:rootserver1 # chkconfig httpd on7 通过如下命令来检查运行状态运行状态:rootserver1 #service httpd status 通过如下命令来检查语法检查语法:rootserver1 #apachectl configtest或rootserver1 #httpd -t 通过如下命令来查看编译时的配置参数配置参数:rootserver1 #httpd V 通过
5、如下命令来查看已经被编译到编译到Apache中的模块中的模块:rootserver1 #httpd l862 Apache的配置文件的配置文件621 Apache配置文件的结构配置文件的结构 Apache的配置文件是/etc/httpd/conf/httpd.conf (1)Section 1: Global Environment这段的功能是控制Apache服务器进程的全局操作。(2)Section 2: Main server configuration这段的功能是处理任何不被段处理的请求,即提供默认处理。请注意,section 2中指令都可以写在虚拟主机段中。(3)Section 3:
6、Virtual Hosts这段的功能是提供虚拟主机配置。9622 Apache配置指令配置指令1Section 1: Global Environment段的配置指令(1)ServerRoot /etc/httpd功能:设置服务器的根目录。说明:在Apache配置文件中如果文件名不以“/”开头,则认为是相对路径,会在文件名前加上ServerRoot命令指定的默认路径名。(2)Listen 80功能:设置Apache服务器监听的端口号为80。说明:也可以设置Apache服务器监听的IP地址和端口号,如Listen 8:8010(3)包含模块文件Include conf.mod
7、ules.d/*.conf功能:将配置模块文件包含进来,这里的模块都是对动态共享对象支持。功能:将配置模块文件包含进来,这里的模块都是对动态共享对象支持。查看该目录下包含进来了哪些文件:查看该目录下包含进来了哪些文件:#ll conf.modules.d/总用量 44-rw-r-r-. 1 root root 3739 3月 20 2014 00-base.conf-rw-r-r-. 1 root root 139 3月 20 2014 00-dav.conf-rw-r-r-. 1 root root 41 3月 20 2014 00-lua.conf-rw-r-r-. 1 root root
8、 742 3月 20 2014 00-mpm.conf-rw-r-r-. 1 root root 894 3月 20 2014 00-proxy.conf-rw-r-r-. 1 root root 88 3月 20 2014 00-systemd.conf-rw-r-r-. 1 root root 451 3月 20 2014 01-cgi.conf-rw-r-r-. 1 root root 53 1月 27 2014 10-auth_kerb.conf-rw-r-r-. 1 root root 43 1月 27 2014 10-nss.conf-rw-r-r- 1 root root 216
9、 3月 7 2014 10-php.conf-rw-r-r-. 1 root root 43 1月 27 2014 10-wsgi.conf (4)自定义)自定义Apache子进程运行身份子进程运行身份User apacheGroup apache功能:设置 Apache服务器子进程运行时的身份为apache、属组为apache 。说明:将Apache服务器子进程的运行身份设置为权限很低的账号是当前安全措施中经常采用的方式。示例:# ps aux | grep httpdroot 34285 0.0 0.3 501632 27432 ? Ss 09:27 0:01 /usr/sbin/http
10、d -DFOREGROUNDroot 34286 0.0 0.1 50784 9724 ? S 09:27 0:00 /usr/libexec/nss_pcache 851973 off /etc/httpd/aliasapache 37170 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37174 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37175 0.0 0.3 518064 27248 ?
11、S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37177 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37178 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUND11122Section 2 Main server configuration段(1)设置)设置管理员邮箱管理员邮箱ServerAdmin rootlocalhost功能:设置功能:设置Apache服务器管理
12、员的邮箱。服务器管理员的邮箱。(2)设置)设置服务器名称和端口号服务器名称和端口号#ServerName :80功能:设置功能:设置Apache默认站点的名称和端口号。默认站点的名称和端口号。13(3)根目录的根目录的访问控制访问控制 AllowOverride none Require all denied 功能:在main server段中有很多个Directory指令配置段,它的写法有些类似HTML的格式。表示要对文件系统的目录进行限制。AllowOverride None表示不允许覆盖不允许覆盖,即不允许其他文件(.htaccess)中配置覆盖当前的设置。AllowOverride的值
13、参见表6-1所示:14(5)对)对文档根父目录文档根父目录的访问控制的访问控制 AllowOverride None # Allow open access: Require all granted功能:对文档根的父目录功能:对文档根的父目录“/var/www”放松限放松限制,不允许覆盖当前设置且开放无条件访问。制,不允许覆盖当前设置且开放无条件访问。这是这是Apache 2.4版中默认配置文件中的新设置,版中默认配置文件中的新设置,由于权限比较宽松,因此由于权限比较宽松,因此需要注意安全问题需要注意安全问题。15(6)对)对文档根文档根的的访问控制访问控制功能:针对文档根目录功能:针对文档根
14、目录/var/www/html进行限制。进行限制。Options Indexes FollowSymLinks功能:设置允许跟随符号连接;功能:设置允许跟随符号连接;Indexes的含义是如果的含义是如果要访问的文档不存在,则会显示出该目录下的文件目录要访问的文档不存在,则会显示出该目录下的文件目录清单。清单。AllowOverride None功能:不允许覆盖当前配置,即不处理功能:不允许覆盖当前配置,即不处理.htaccess文件。文件。Require all granted功能:允许从任意地址访问该目录。功能:允许从任意地址访问该目录。Options的值参见表6-2所示:1617表6-2
15、 Options选项值及其含义(7)设置)设置默认文档名默认文档名 DirectoryIndex index.html功能:设置每个目录的默认文档名。功能:设置每个目录的默认文档名。说明:当访问网站时如果没有指定具体的文档,则会说明:当访问网站时如果没有指定具体的文档,则会在指定的目录下找有没有默认文档存在,如果有则显在指定的目录下找有没有默认文档存在,如果有则显示。示。(8)文件访问控制文件访问控制 Require all denied功能:无条件禁止访问文件名中包含功能:无条件禁止访问文件名中包含“.ht” 的文件。的文件。18(9)设置)设置错误日志错误日志ErrorLog logs/e
16、rror_log功能:指定错误日志的存放位置。功能:指定错误日志的存放位置。(10)设置)设置日志级别日志级别LogLevel warn功能:指定日志记录的级别。功能:指定日志记录的级别。(11)设置)设置日志格式日志格式 LogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combined LogFormat %h %l %u %t %r %s %b common LogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti %I %O combinedio CustomLog logs/a
17、ccess_log combined 功能:利用功能:利用LogFormat指令设置记录日志时采用的格式;利用指令设置记录日志时采用的格式;利用CustomLog指令设置访问日志的位置和类型。指令设置访问日志的位置和类型。19(12)设置)设置CGI脚本目录的别名脚本目录的别名ScriptAlias /cgi-bin/ /var/www/cgi-bin/功能:定义功能:定义CGI脚本目录的别名,即将脚本目录的别名,即将/cgi-bin/定义为定义为/var/www/cgi-bin/的别名。的别名。说明:一般情况下,说明:一般情况下,/cgi-bin/中存放的是中存放的是CGI脚本程序,而且脚脚
18、本程序,而且脚本程序应该位于文档根目录之外,所以采用了别名(虚拟目录)本程序应该位于文档根目录之外,所以采用了别名(虚拟目录)的方式。接下来,仍然是对脚本别名所对应的真实目录做限制的方式。接下来,仍然是对脚本别名所对应的真实目录做限制的配置段,内容如下:的配置段,内容如下: AllowOverride None Options None Require all granted20(13)设置)设置MIME模块模块TypesConfig /etc/mime.types AddType application/x-compress .ZAddType application/x-gzip .gz
19、.tgz功能:如果前面的功能:如果前面的AddEncoding去掉注释的话,那么应该定义去掉注释的话,那么应该定义这些扩展名来指明这些媒体文件的类型。这些扩展名来指明这些媒体文件的类型。 AddType text/html .shtmlAddOutputFilter INCLUDES .shtml功能:定义功能:定义SSI(服务器端包含)文件的扩展名;增加处(服务器端包含)文件的扩展名;增加处理理.shtml文件的方法。文件的方法。 (14)增加默认字符集增加默认字符集AddDefaultCharset UTF-8功能:增加默认字符集为功能:增加默认字符集为UTF-8。21(15)MIME M
20、agic模块模块 MIMEMagicFile conf/magic功能:允许服务器根据文件内容的各种提示来决定其类型。功能:允许服务器根据文件内容的各种提示来决定其类型。(16)采用)采用sendfile系统调用来传递文件系统调用来传递文件EnableSendfile on功能:采用内存映射或功能:采用内存映射或sendfile系统调用来传递文件。这通常可系统调用来传递文件。这通常可以提高服务器的性能,但是在基于网络挂装的文件系统上,必以提高服务器的性能,但是在基于网络挂装的文件系统上,必须关闭此特性。须关闭此特性。(17)包含可选的配置文件包含可选的配置文件IncludeOptional c
21、onf.d/*.conf功能:包含功能:包含/etc/httpd/conf.d目录下所有以目录下所有以.conf结尾的配置文结尾的配置文件,件,这些可选的这些可选的“小配置文件小配置文件”是主配置文件的是主配置文件的重要扩展和补充。重要扩展和补充。222363 Apache的配置示例的配置示例631 主机访问控制主机访问控制1.主机访问控制示例一:主机访问控制示例一: Order allow,deny Allow from /24 Deny from 23功能:除了功能:除了23以外,以外, /24
22、网段的其他机器可以访问该目录。网段的其他机器可以访问该目录。说明:说明:Order 定义了定义了allow与与deny指令的执行顺序,指令的执行顺序,如果二者有矛盾的话,以后执行的指令为准。需如果二者有矛盾的话,以后执行的指令为准。需要注意的是要注意的是allow、deny指令的执行顺序与下面指令的执行顺序与下面的的Allow from 、Deny from语句的书写顺序无关。语句的书写顺序无关。24主机访问控制示例三:主机访问控制示例三: Order allow,deny Allow from all Deny from all功能:禁止所有主机从任何地点访问该目录。功能:禁止所有主机从任何
23、地点访问该目录。 Order deny ,allow Allow from 23 Deny from 23功能:允许功能:允许IP地址为地址为23的主机可以访的主机可以访问该目录。问该目录。25 关于主机访问控制有以下说明:关于主机访问控制有以下说明:1)Order 命令中指定的顺序至关重要,写在后面命令中指定的顺序至关重要,写在后面的关键字有最终决定权。的关键字有最终决定权。2)IP地址的表示方法比较灵活,可以有如下写法:地址的表示方法比较灵活,可以有如下写法:网络网络/子网掩码子网掩码:如:如/
24、。CIDR规范规范:如:如/24。单个单个IP地址地址的表示:的表示:23。3)支持域名支持域名例如,例如,Allow from 功能:表示允许功能:表示允许域中所有主机访问。域中所有主机访问。 26632 用户访问控制用户访问控制 下面通过示例来具体介绍认证授权的实现。下面通过示例来具体介绍认证授权的实现。(1)首先,编辑)首先,编辑Apache的主配置文件的主配置文件httpd.conf,在需要进行认证授权的目录中进行配置。在需要进行认证授权的目录中进行配置。#对目录对目录“/var/www/html/test”进行
25、访问控制。进行访问控制。AllowOverride AuthConfig #表示允许覆盖,即允许在文件表示允许覆盖,即允许在文件.htaccess中使用认中使用认证授权。证授权。说明:说明:.htaccess应该位于应该位于“/var/www/html/test”目录中目录中。另外,。另外,AllowOverride的值还可以是的值还可以是All,也能实现此功能。也能实现此功能。27(2)在需要认证和授权的目录中,即)在需要认证和授权的目录中,即“/var/www/html/test”目录中创建名目录中创建名为为.htaccess的文件,其内容如下:的文件,其内容如下:AuthName “Te
26、st Area”AuthType Basic AuthUserFile /var/mypasswd Require valid-user 28(3)创建口令文件。)创建口令文件。按照.htaccess中AuthUserFile指定的文件名,来创建口令文件/var/mypasswd。执行如下命令:#htpasswd c /var/mypasswd myuser1功能:创建/var/mypasswd文件,同时将用户myuser1加入该文件中;其中-c:表示创建。注意只在第一次创建口令文件使用-c,以后再添加新用户时不要带-c参数,请看如下示例:# htpasswd /var/mypasswd my
27、user2 29(4)将口令文件的属主改为)将口令文件的属主改为apache。# chown apache.apache /var/mypasswd说明:因为在运行Apache服务器时是以apache的身份运行的,而在进行认证过程时需要访问口令文件/var/mypasswd,所以需要将口令文件的属主改为apache。 30 执行了以上步骤后,即可重新启动Apache服务器。#service httpd restart在客户机上,进行认证授权的测试,在浏览器地址栏中输入如下内容:02/test/效果如图6-1所示:31图图6-1认证授权认证授权32图图6-2未通过与
28、通过认证授权未通过与通过认证授权33633 虚拟主机虚拟主机Apache实现的虚拟主机主要有实现的虚拟主机主要有3种类型:种类型: 一是一是基于基于IP地址地址的虚拟主机;的虚拟主机; 二是二是基于端口基于端口的虚拟主机;的虚拟主机; 三是三是基于名字基于名字的虚拟主机。的虚拟主机。 341基于基于IP地址的虚拟主机地址的虚拟主机 思路:在同一台主机上配置多个IP地址,每个IP地址对应一个虚拟主机。 第一步第一步,在一台主机上配置多个IP地址,执行如下命令。# ifconfig eth0:1 03 netmask 功能:eth0:1为eth0的子接口
29、,该命令创建了子接口eth0:1,同时为该接口配置了IP地址03。35第二步,编辑第二步,编辑Apache的配置文件,在文件的末尾追加以下的配置文件,在文件的末尾追加以下内容:内容: ServerAdmin DocumentRoot /www/iproot1 ServerName 02 ErrorLog logs/02-error_log CustomLog logs/02-access_log common ServerAdmin DocumentRoot /www/iproot2 ServerName 10.22.1.
30、103 ErrorLog logs/03-error_log CustomLog logs/03-access_log common36 第三步,建立两个虚拟主机的文档根目录及相应测试页面。第三步,建立两个虚拟主机的文档根目录及相应测试页面。#mkdir p /www/iproot1#mkdir p /www/iproot2#vi /www/iproot1/index.html内容如下: this is the IP_based VirtualHost 02!#vi /www/iproot2/index.html内容如下: this is
31、the IP_based VirtualHost 03! 37 第四步,运行与测试。#service httpd restart#elinks 02说明:利用RHEL 7.0中提供的文本浏览器elinks来测试。#elinks 03382基于端口的虚拟主机基于端口的虚拟主机 思路:在同一台主机上针对一个IP地址和不同的端口来建立虚拟主机,即每个端口对应一个虚拟主机。 第一步,建立新的子接口并配置IP地址为04# ifconfig eth0:2 04 netmask 255.255.
32、255.039 第二步,编辑Apache的主配置文件httpd.conf,增加监听的端口号8001和8002在Section 1 中增加两行配置,分别监听8001和8002端口Listen 80Listen 8001Listen 800240第三步,编辑Apache的主配置文件httpd.conf,建立基于端口的虚拟主机配置段,内容如下: ServerAdmin DocumentRoot /www/portroot1 ServerName 04 ErrorLog logs/04-8001-error_log CustomLog logs/0
33、4-8001-access_log common ServerAdmin DocumentRoot /www/portroot2 ServerName 04 ErrorLog logs/04-8002-error_log CustomLog logs/04-8002-access_log common413基于名字的虚拟主机基于名字的虚拟主机 思路:在同一台主机上针对相同的IP地址和端口号建立基于名字的虚拟主机。 第一步,在DNS服务器的区域数据库文件中增加两条A记录和两条PTR记录。为了不影响前面的虚拟主机,这里再增加一个子接口,并配置为
34、05。# ifconfig eth0:3 05 netmask 接下来,配置DNS以支持新的域名解析。DNS正向区域数据库中增加的记录如下:. IN A . IN A 0542 第二步,编辑Apache的主配置文件,激活基于名字的虚拟主机,并建立两个基于名字的虚拟主机配置段。NameVirtualHost 05:80功能:针对05:80配置基于名字的虚拟主机。说明:这是非常重要的一条指令,正是该指令的作用才激活了基于名字的虚拟主机的功能。43NameVirtualHost 10
35、.22.1.105:80 ServerAdmin DocumentRoot /www/nameroot1 ServerName ErrorLog logs/-error_log CustomLog logs/-access_log common ServerAdmin DocumentRoot /www/nameroot2 ServerName ErrorLog logs/-error_log CustomLog logs/-access_log common 44第三步,建立两个虚拟主机的文档根及主页。#mkdir -p /www/nameroot1#mkdir -p /www/namero
36、ot2#vi /www/nameroot1/index.html内容如下: welcome to name_based VirtualHost .#vi /www/nameroot2/index.html内容如下: welcome to name_based VirtualHost .45 第四步,运行与测试。#service httpd restart#elinks #elinks 4664 Apache的高级配置的高级配置641 重定向重定向Redirect 指令的格式如下:指令的格式如下:Syntax: Redirect status URL-path new-URL说明:说明:new-
37、URL不能是相对路径,必须是不能是相对路径,必须是FQDN。47 重定向示例一:重定向示例一:编辑Apache的主配置文件httpd.conf,在Section 2 main server configuration 中增加如下指令:Redirect /tools 02/oldtools功能:当客户访问02/tools时,将被重定向为02/oldtools。48 重定向示例二:重定向示例二:Redirect permanent /one http:/ 303 /three http:/ 和和 Script
38、Alias配置指令。49642 重写规则重写规则 Apache的重写规则模块是一个基于正则表示式的重写URL 的工具。 重写规则模块提供了包括路径处理在内完整的URL处理操作: 既可以应用在Apache主配置文件主配置文件httpd.conf中(又称为每服务器上下文per-server context), 又可以应用在.htaccess 文件中文件中(又称为每目录上下文per-directory context)。 50 在进行URL的操作过程中,可以依据多种条件测试,例如:服务器变量环境变量HTTP首部各字段时间戳等。51 重写规则的处理机制分为两部分:第一是整个规则集整个规则集的处理流程;
39、第二是一条规则一条规则的处理流程。 521整个规则集的处理流程 注意注意:整个规则集的处理流程有些复杂,记住先从第一从第一条规则入手条规则入手,而不是写在第一条规则前面的重写条件。53 图中的RewriteRule指令用来设置一条重写规则,其格式如下: RewriteRule Pattern Substitution其中,Pattern是URL需要匹配的模版模版,是一个正则表达式,Substitution是重写后的字符串是重写后的字符串,即新的URL或新的文件名。 图6-3中出现的另一条指令是RewriteCond,该指令用来设置重写条件,其格式如下:RewriteCond TestStrin
40、g CondPattern其中,TestString可以包含变量、后向应用及映射查询结果等。CondPattern是条件模版,可以是是条件模版,可以是一个正则表达式一个正则表达式;将TestString与后面的CondPattern条件模版相比对,若二者相匹配,则执行下一个重写条件或执行与其相关的重写规则。 54当重写规则模块收到一个URL请求后,按如下流程处理:1)按顺序取出下一条要执行的重写规则。2)用当前的当前的URL与当前重写规则中的与当前重写规则中的Pattern进行进行比对比对,如果二者不匹配,则中止该规则的执行,转去执行步骤5);如果二者匹配,则执行步骤3)。3)执行与该规则相关
41、的重写条件中的TestString,即展开展开TestString。接着,将将TestString与该重与该重写条件中的写条件中的CondPattern相比对相比对,如果二者不匹配,则中止该重写条件的执行,进而中止该重写规则的执行,转去执行步骤5);如果二者匹配,则执行步骤4)。4)执行该条重写规则中的Substitution,即真正实现URL重写操作。5)判断是否为最后一条重写规则是否为最后一条重写规则,如果不是,则转去执行1),否则执行6)。6)URL重写完毕。 552一条规则的处理流程 Apache重写模块中允许一条重写规则一条重写规则可以与任意数量的重写条件相关联。 为解释每一条重写规
42、则的执行过程,请参见图6-4所示。56 一条重写规则的执行过程:57 Apache重写模块中,允许重写规则可以没没有相关的重写条件有相关的重写条件,在这种情况下,仍然先判断收到的URL与Pattern是否匹配,如果二者相匹配,则直接执行Substitution,即完成URL重写操作。 如果一条重写规则与多条重写条件多条重写条件相关联,则在处理完URL与Pattern比对后,依次去执行各重写条件,如果其中有任何一条不满足一条不满足的话,都会中止该重写规则中止该重写规则的执行。583重写规则示例(1)源与目标同在文档根下示例)源与目标同在文档根下示例 本示例示例是指在文档根(/var/www/ht
43、ml)下有两个目录,一个是原来存放文档的旧目录/var/www/html/realold1,一个是现在存放文档的新目录/var/www/html/realnew1。 客户通过旧名字仍然可以访问原来的文档,即将/realold1/重定向到/var/www/html/realnew1目录。 具体实现步骤如下:591)在Apache主配置文件主配置文件httpd.conf中,输入以下内容:#针对源(旧)目录进行设置Options FollowSymLinks#要用重写规则,必须激活FollowSymLinks选项AllowOverride All#允许覆盖,即采用.
44、htaccess文件中的配置,下面在该文件中写入重写规则 #针对目标(新)目录进行设置Options FollowSymLinksAllowOverride None#不允许覆盖602)创建源、目录两个目录及测试文件#mkdir /var/www/html/realold1,new1#vi /var/www/html/realnew1/index.html内容如下: this is /var/www/html/realnew1/index.html 613)在源(旧)目录中创建.htaccess文件,内容如下:RewriteEngine ONRewriteBase /realnew1/Rewr
45、iteRule (.*)$ $1 R=301说明说明:RewriteEngine ON激活重写引擎。激活重写引擎。RewriteBase /realnew1/是目录级重写指是目录级重写指令,用来设置重写令,用来设置重写URL的基础目录;的基础目录;62说明(续)说明(续)RewriteRule (.*)$ $1 R=301此指令有此指令有3部分参部分参数:数:第第1个参数个参数Pattern的值为的值为(.*)$,这是一个正则表达,这是一个正则表达式,其含义是任意字符开头或结尾的字符串,其式,其含义是任意字符开头或结尾的字符串,其中中“()()”用来定义后向引用,也称为组;用来定义后向引用,也
46、称为组;第第2个参数个参数Subsititution的值是的值是$1,用来引用前面,用来引用前面Pattern中定义的第一对中定义的第一对“()()”中的内容;中的内容;第第3个参数个参数的值是的值是R=301,R表示外部重定向,表示外部重定向,301表示永久移动。表示永久移动。634)测试,在客户机上输入/realold1/,参见图6-5所示。图图6-5 重写规则应用之重定向之前重写规则应用之重定向之前64按键后,出现如下内容,参见图6-6 图图6-6 重写规则应用之重定向效果重写规则应用之重定向效果 65(2)目标不在文档根下的示例)目标不在文档根下的示例
47、 本示例的文档根仍为/var/www/html,源(旧)目录为/var/www/html/realold2,目标(新)目录是/var/www/html2/realnew2。 很明显二者不在同一个文档根下,下面介绍具体实现步骤。661)编辑Apache主配置文件主配置文件httpd.conf,加入以下内容:#针对源(旧)目录进行设置Options FollowSymLinksAllowOverride AllAlias /aliasnew2/ /var/www/html2/realnew2/#给目标(新)目录定义别名为/aliasnew2/,后面.htaccess文件中要用到此别名 Option
48、s FollowSymLinks AllowOverride None说明:说明:由于源和目标不在同一个文档根下,在访问时必须用别名必须用别名。672)创建源和目标目录及测试文件:#mkdir /var/www/html/realold2#mkdir /var/www/html2/realnew2#vi /var/www/html2/realnew2/index.html内容如下: this is /var/www/html2/realnew2/index.html683)在源(旧)目录/var/www/html/realold2中创建.htaccess文件,其内容如下:RewriteEngine OnRewriteBase /aliasnew2/RewriteRule (.*)$ $1 R=301说明:此处需要说明的是,由于目标(新)目录不在文档根下,所以在访问时需要用到别名,在此处定义重写基础目录时设置的目录也为别名,而且与Apache主配置文件中定义的别名相同,即/aliasnew2/。其他指令的功能同上例,这里不再赘述。694)测试,在客户机上输入/realold2/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年资产评估师之资产评估基础过关检测试卷A卷附答案
- 基于2025年战略规划的职业院校产教融合项目资金申请报告
- 新能源汽车废旧电池回收利用产业投资风险预警与2025年市场前景报告
- 数字化协同管理在制造业供应链中的供应链金融风险管理策略报告
- 绿色消费理念传播下的智能家居市场消费行为引导报告
- 2023数据中心高性能网络拥塞检测技术
- 2023年电大会计专业网上作业答案财务分析
- 第一章 有理数 单元测试卷(含部分解析) 2025-2026学年人教版七年级数学上册
- 二零二五年精装修酒店式公寓预售购销合同范本
- 二零二五年度智慧城市建设劳务派遣服务协议范本
- 工业自动化设备智能化改造方案设计
- 住宅小区综合管网工程施工方案内容完整
- 保时捷订车合同范例
- 管道闭水试验(自动计算)
- 微专题讲义:零点差问题-解析版
- 数据结构与算法分析-课件-宋霜-最终完整版
- 行政部工作职责、流程、制度
- 1688代运营合同模板
- DL∕T 806-2013 火力发电厂循环水用阻垢缓蚀剂
- 第一届全国技能大赛机电一体化项目“专业技术规范”
- 防止电力建设事故三十条措施题库附有答案
评论
0/150
提交评论