httpd路径映射和重定向
apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html
主要包括Alias指令、AliasMatch、Redirect、RedirectMatch、ScriptAlias和ScriptAliasMatch。它们由mod_alias模块提供,该模块用于提供简单的路径映射和重定向需求,更复杂的内容见URL重写。
其中ScriptAlias用法和Alias完全一样,唯一不同的是ScriptAlias映射的目标路径被认为是CGI文件或包含CGI文件的目录,它们将会被cgi处理器处理执行。
1.1 处理顺序
Redirect、RedirectMatch指令优先于Alias、AliasMatch进行处理;同类型的Redirect或Alias按照出现顺序进行匹配,匹配到了立即停止。
例如:如果几个指令按照下面的顺序出现:
Redirect1
Alias1
AliasMatch2
Alias3
RedirectMatch2
Redirect3
那么它们匹配的顺序为:Redirect1>RedirectMatch2>Redirect3>Alias1>AliasMatch2>Alias3。且一被匹配立即生效,后面的将被忽略。
1.2 Alias和AliasMatch
Alias指令用于将URL路径映射到本地文件系统的路径,且本地路径不受DocumentRoot的限制。AliasMatch是正则版本的Alias。
Alias "/image" "/ftp/pub/image"
这将使得 http://myserver/image/foo.gif 的请求得到/ftp/pub/image/foo.gif,由于是精确匹配的,所以 http://myserver/image/foo.gif 不会返回该路径下的文件。但Alias有支持正则匹配的指令AliasMatch。
AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"
Alias中如果URL部分包含了尾随斜线,则映射路径也应该包含斜线。例如下面的例子,这时如果请求 http://myserver/icons ,将不会得到/usr/local/apache/icons/$DirectoryIndex。
Alias "/icons/" "/usr/local/apache/icons/"
设置了Alias后,需要考虑映射到的本地路径的权限是否放行。特别是对于DocumentRoot外的路径,通常会因为< Directory "/">的拒绝而导致这些映射目标不能访问。所以,对于这样的映射路径应该还需要为Alias指令配一个< Directory >容器放行。例如:
Alias "/image" "/ftp/pub/image"
<Directory "/ftp/pub/image">
Require all granted
</Directory>
如果Alias或AliasMatch出现在< Location >容器中,则它们只需要一个映射路径作为参数即可,因为URL已经包含在容器路径中。例如:
<Location "/image">
Alias "/ftp/pub/image"
</Location>
1.3 Redirect和RedirectMatch指令
它们告知客户端资源已经转移,让它们重新发送对新路径资源的HTTP请求。
Redirect [status] old-URL new-URL
旧的URL必须是以斜线"/"开头的绝对路径,新URL也必须是绝对路径,但可以是包含了scheme://serverhost的绝对路径,也可以是使用斜线开头的绝对路径。例如:
# 重定向到不同主机上
Redirect "/service" "http://foo2.example.com/service"
# 重定向到相同主机上
Redirect "/one" "/two"
如果客户端请求 http://example.com/service/foo.txt ,将被告知重新去请求 http://foo2.example.com/service/foo.txt 。可以是包含GET参数的URL,例如 http://example.com/service/foo.pl?q=23&a=42 ,将重定向到 http://foo2.example.com/service/foo.pl?q=23&a=42 。但注意,POST方法会被无视。
如果没有指定status参数,则重定向是临时重定向(HTTP status 302)。对客户端来说,此资源的路径变动是临时性的。以下几个status参数可以返回各自不同的HTTP状态码:
- permanent:返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。
- temp:返回一个临时性重定向状态码(302),这是默认值。
- seeother:返回一个"参见"状态码(303),表示此资源已经被替代。
- gone:返回一个"已废弃"状态码(410),表示此资源已经被永久性地删除了。如果指定了这个状态码,则new-URL参数将被忽略。
status可以被指定为某个数值以返回其他指定状态码。如果此值在300-399之间,则必须提供new-URL参数,否则必须忽略new-URL,但不管如何,值必须是有效的http状态码值。
和alias指令一样,如果写在Location容器中,则old-URL忽略,因为它已经包含在location容器的路径中。例如:
<Location "/one">
Redirect permanent "http://example.com/two"
</Location>
<Location "/three">
Redirect 303 "http://example.com/other"
</Location>
<LocationMatch "/error/(?<NUMBER>[0-9]+)">
Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
</LocationMatch>
httpd路径映射和重定向的更多相关文章
- Servlet学习笔记(二)之Servlet路径映射配置、Servlet接口、ServletConfig、ServletContext
Servlet路径映射配置 要使Servlet对象正常的运行,需要进行适当的配置,以告诉Web容器哪个请求调用哪个Servlet对象处理,对Servlet起到一个注册的作用.Servlet的配置信息包 ...
- ASP.NET MVC 4 (一)路径映射
原文:ASP.NET MVC 4 (一)路径映射 正如ASP.NET MVC名字所揭示的一样,是以模型-视图-控制设计模式构建在ASP.NET基础之上的WEB应用程序,我们需要创建相应的程序类来协调处 ...
- Spring—请求映射之URL路径映射
Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类.并且提供了一组强大的注解:需要通过处理器映射DefaultAnnotati ...
- Servlet路径映射
Serlvlet路径映射 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url. 容器默认请求的是一个Servlet,所以不会直接根据 ...
- springMVC学习总结(二)路径映射和请求方法限定
springMVC学习总结(二)路径映射和请求方法限定 一.路径映射 无参数的访问路径 对springmvc项目的访问路径,是由根路径和子路径组成:在注解式开发中,根路径标注在类名之上,子路径标注在方 ...
- iis访问网络路径映射问题(UNC share)
最近在做一个功能,涉及到nas网络磁盘文件的保存和访问,在服务器上将对应的路径映射为Z盘,结果在iis上部署网站直接访问该路径,报无法找到该路径的错误. 用的是.net core开发,在vs直接启动程 ...
- servlet路径映射中的完全路径匹配、目录匹配、扩展名匹配
在servlet路径映射中,关于url-pattern的配置有三种,分别是完全路径匹配.目录匹配.扩展名匹配 其优先级分别为:完全路径匹配>目录匹配>扩展名匹配: 一.三种路径印射的区别 ...
- NodeJS框架express的路径映射(路由)功能及控制
我 们知道Express是一个基于NodeJS的非常优秀的服务端开发框架,本篇CSSer将提供express框架的route和route control章节,route实现了客户端请求的URL的路径映 ...
- 001_JavaWeb之Servlet的路径映射问题
001_JavaWeb之Servlet的路径映射问题 在web.xml中写入: <servlet> <servlet-name>DeleteStudent</servle ...
随机推荐
- Java web 引入wangEditor编辑器
最近项目需要我做些前端的事,这让我这个半吊子前端很是痛苦.项目中需要一个编辑器,之前找了个ueditor,插件比较多,需要改源码等等不说,最后弄好了,发现需要flash插件.没办法,只有推到重来,在网 ...
- 采用Vue2.0开发的分页js组件
2017-11-17 19:14:23 基于jQuery的分页插件相信大家伙已经都用过很多了,今天分享一下基于Vue2.0的分页插件pagination.js 由于项目需求,要求使用 Vue2.0 开 ...
- [转]Spring.Net介绍
转自:http://www.cnblogs.com/cilence/archive/2013/02/21/2920478.html Spring.NET下载地址:http://www.springfr ...
- 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络
最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...
- Unity3D获取资源的方法整理:
在使用Unity3D做项目时,获取资源的方法大致分为两种.一种是通过写代码的方式,在程序运行时,自动获取资源:一种是通过手动拖拽的方式进行获取.不管是什么类型的资源都能通过这两种方式获得,下面拿图片资 ...
- windows下安装和redis主从配置(通过哨兵控制主从切换)
首先自己先得了解什么是redis,这里就不详做介绍什么是redis了,这篇文章主要讲的是怎么样配置 redis怎样配置主从关系和哨兵控制主从服务器的配置以及应用,就当是给自己记笔记吧! 1.下载red ...
- Numpy入门 - 生成数组
今天是Numpy入门系列教程第一讲,首先是安装Numpy: $ pip install numpy numpy是高性能科学计算和数据分析的基础包,本节主要介绍生成连续二维数组.随机二维数组和自定义二维 ...
- Lonlife 1000 - Spoon Devil's 3-D Matrix
1000 - Spoon Devil's 3-D Matrix Time Limit:1s Memory Limit:32MByte Submissions:208Solved:65 DESCRIPT ...
- mongo安装,及远程连接
yum 安装mongo创建镜像 1 vi /etc/yum.repos.d/mongodb-org-3.6.repo添加一下路径 保存退出[mongodb-org-3.6]name=MongoDB R ...
- YiShop_商城网站设计应该注意什么
商城网站的建设,不是一件简单的事情,当然,也不要把商城网站的建设想得那么的复杂,在建设商城网站的时候 ,只要考虑到以下这些因素,定能把商城网站建设工作做好.那么商城网站建设要考虑哪些因素:(1)风格 ...