图片 1

接下来选择要使用的匹配语法,一共有三种:正则表达式,通配符,完全匹配,这里我们选择的是使用正则表达式。

图片 2

图片 3

我们使用正则一共可以捕获到3组反向引用的内容,具体关于{R:0}/{R:1}/{R:2}和向后引用/反向引用,可以看这篇文章:详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}。

示例详解说明{R:N}和{C:N}

  1. 使用‘!’ 字符(惊叹号)来实现匹配的反转
  2. ‘,=。
  3. ‘-d’
    (是一个目录[directory])。将TestString视为一个路径名并测试它是否存在而且是一个目录.
  4. ‘-f’
    (是一个常规的文件[file])。将TestString视为一个路径名并测试它是否存在而且是一个常规的文件.
  5. ‘-s’
    (是一个非空的常规文件[size])。将TestString视为一个路径名并测试它是否存在而且是一个尺寸大于0的常规的文件.
  6. ‘-l’
    (是一个符号连接[link])。将TestString视为一个路径名并测试它是否存在而且是一个符号连接.
  7. ‘-F’
    (对子请求有效的业已存在的文件)。测试TestString是否一个有效的文件,
    而且可以被服务器当前已经配置的所有存取控制所存取。
    它用一个内部子请求来做判断,由于会降低服务器的性能,请小心使用!

图片 4

 

2、规则条件(Rule conditions):

推荐资源
正则表达式工具firefox扩展:Regular Expressions Tester
正则表Introduction to the Tutorial:

{R:0}和{R:1}分别是对重写URL进行赋值。

rule
patterns规则模式在IIS的URL重写模块中,是较为关键的设置。只有规则模式的URL匹配成功时,其他的规则才能起到作用。规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明。

最后设置操作规则,设置重定向URL为:{R:2}/Index,上面我们已经知道{R:2}就是反向引用所捕获的/TestUrlRewrite,完整重定向的URL地址为:/TestUrlRewrite/Index。这样就成功实现了使用反向引用来进行重定向操作。

$1=USA,$2=California,$3=San_Diego

图片 5

最后设置匹配规则模式的语法,这里我设置的正则表达式是 ^(.*?)/Home/(Index)$ 。点击右边的测试模式,我们可以测试正则匹配的是否正确,输入URL:

详解IIS中URL重写工具的规则条件(Rule
conditions)

Apache文档之URL重写指南:

例如我们的网页地址是:

图片 6

图片 7

RewriteCond指令
RewriteCond TestString CondPattern [Flags]
RewriteCond指令定义了一个规则的条件,即在一个RewriteRule指令之前有一个或多个RewriteCond指令。
条件之后的重写规则仅在当前URI与pattern匹配并且符合这些条件的时候才会起作用。
RewriteCond也有反向引用,但和RewriteRule中用$N引用不同,它使用%N反向引用。
RewriteCond引用Apache变量%{ NAME_OF_VARIABLE},如%{HTTP_HOST}。
RewriteCond的条件模式(CondPattern)除了使用perl样式正则表达式,还有额外的规则:

这样伪静态的参数就能丢到ARCID了!

下面说明如何设置匹配URL规则的各个属性:

文档链接地址:Using back-references in rewrite
rules

Apache文档之mod_rewrite介绍:

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注