编辑这个工程,需要使用%代替$捕获组:
RewriteRule (.*) http://localhost:8081/%1/%{TIME_YEAR}1101%2 [P]
有一个困难的时间整理出来。
需要一个有条件的注入到特定的URI(用于代理到Jetty应用服务器)的datestring,条件是,如果没有8位数字的datestring已经存在,注入它。
我想到的黑客是:
RewriteCond %{REQUEST_URI} ^/(foo|bar|baz)(.*) RewriteCond %2 !/(\d{8})(.*) RewriteRule (.*) http://localhost:8081$1/%{TIME_YEAR}1101$2 [P]
这在某种程度上是有效的,但不是全部,$ 2是空的,$ 1匹配整个URI。
基本上什么事情发生是/foo/2被重写到/foo/2/20121101 ,而我需要发生的是/foo/20121101/2
所以,假设$ 1匹配整个URI,那么我怎样才能使它匹配foo | bar | baz,留下$ 2作为URI余数,然后我可以在date中夹入?
另外,这是一个可怕的低效率的方法? 阿帕奇文档通常指示链接[OR]所以不知道直线正则expression式的路要走(当然更简洁)。 在Apache 2.4上,所以希望实际上可以从速度提升中受益(而不是在脚下自我拍摄)
谢谢
如果我明白你所做的是正确的,我可能不会这么做,
RewriteCond %{REQUEST_URI} !/\d{8}(/|$) RewriteRule ^/(foo|bar|baz)(/?.*)$ http://localhost:8081/$1/%{TIME_YEAR}1101$2 [P]