别名匹配正则表达式问题

aliasmatch regex woes

我正在努力使我们网站的站点地图正常运行。我的任务是获取一个脚本 运行,它以以下格式将多个文件传播到所述服务器:

一个 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_.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, like 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"

如能协助修复制作的正则表达式,我们将不胜感激。

正则表达式中的点(.)用于匹配除换行符之外的任何字符。您需要转义这些 'special' 字符,通常使用反斜杠。您可能还想使用行尾锚点:

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