2168575 发表于 2018-11-26 11:38:39

apache下redirectmatch的使用

  上一篇文章提到了如何使用Redirect做重定向,但是Redirect做的话不能匹配一批URL,这就需要用到RedirectMatch和正则表达式,来完成更艰巨的任务。
  RedirectMatch指令:
  说明: 基于正则表达式匹配对当前的URL发送一个外部重定向
  语法: RedirectMatch       regex   URL
  上下文: 服务器配置, 虚拟主机, 目录, .htaccess
  覆盖项: FileInfo
  状态: Base
  模块: mod_alias
  说明:此指令与Redirect等效, 但是它使用了标准的正则表达式,而不是简单的前缀匹配。 如果此正则表达式与URL-path相匹配, 则服务器会用给定的字符串替换加了括弧的匹配,并视之为一个文件名
  举例来说,比如我要把以下地址全部匹配到http://www.frankdu.com/blog/feed上:
  /blog/SyndicationService.asmx/GetRssCategory
  /blog/SyndicationService.asmx/GetRssCategory?categoryName=Coding
  /blog/SyndicationService.asmx/GetRssCategory?categoryName=Natural Language Processing
  /blog/SyndicationService.asmx/GetRssCategory?categoryName=Coding|Python
  /blog/SyndicationService.asmx/GetRss
  那么可以在.htaccess中添加下面一行指令:
  RedirectMatch 301 /blog/SyndicationService.asmx.*$ http://www.frankdu.com/blog/feed
  现在访问原来地址的链接,都能找到新的、改变后的地址了。
  更多内容,请参见Apache的mod_alias模块的中文文档。

页: [1]
查看完整版本: apache下redirectmatch的使用