aliasmatch正则表达的困境

时间:2015-10-09 13:53:29

标签: regex apache sitemap

我正在努力让我们网站的网站地图功能正常运行。我被赋予了运行脚本的任务,该脚本以下列格式将几个文件传播到所述服务器:

指向 - >的sitemap.xml文件几个sitemap_10001 _?。xml.gz文件 这些文件存储在/ webfiles / sitemap / example /

的位置

sitemap.xml文件指向这些文件:

example.com/webapp/wcs/stores/sitemap_10001_1.xml.gz  (or 10001_2, _3, etc).  

我遇到的问题是我打了一个正则表达式来评估对sitemap _ *。xml.gz的传入请求,并将它们指向我认为正确的方向。

AliasMatch ^/sitemap_(.*).xml.gz        "/webfiles/sitemap/example/sitemap_$1.xml.gz"

在这一点上,尽我所能,这个正则表达式是悲惨的失败。

错误日志中没有任何内容,只是访问日志条目:

  

1.2.3.4 - - [09 / Oct / 2015:01:30:04 -0400]“GET /webapp/wcs/stores/sitemap_10001_2.xml.gz HTTP / 1.1”302 20“ - ”“Mozilla / 5.0 (Windows NT 10.0; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 45.0.2454.99 Safari / 537.36“”1.2.3.4,1.2.3.4“4002”1.2.3.4,1.2.3.4“” - “www.example .com internalsitename:9085“http://www.example.com/GenericApplicationError

任何修复精心制作的正则表达式的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

RegEx中的点(.)用于匹配除新行字符之外的任何字符。你需要逃避这些'特殊'字符,通常使用反斜杠。您可能还想使用行尾锚点:

AliasMatch ^/sitemap_(.*)\.xml\.gz$ /webfiles/sitemap/example/sitemap_$1.xml.gz