首次使用后无法访问Apache重写反向引用变量

首次使用后无法访问Apache重写反向引用变量,apache,mod-rewrite,Apache,Mod Rewrite,我遇到了一种我觉得很奇怪的情况。在第一次使用apache重写规则后,构建apache重写规则时的反向引用变量似乎丢失了 我的要求是更改旧的URL模式以符合新的路径模式,例如: www.example.com/documents/newsletter/newsletter-issue-50.htm 成为 www.example.com/sites/default/newsletter/50/English/newsletter-issue-50.htm 如您所见,新的URL模式需要在两个位置指

我遇到了一种我觉得很奇怪的情况。在第一次使用apache重写规则后,构建apache重写规则时的反向引用变量似乎丢失了

我的要求是更改旧的URL模式以符合新的路径模式,例如:

www.example.com/documents/newsletter/newsletter-issue-50.htm
成为

www.example.com/sites/default/newsletter/50/English/newsletter-issue-50.htm
如您所见,新的URL模式需要在两个位置指定发行号

我的重写规则如下:

RewriteRule ^documents/newsletter/newsletter-issue-(.*).htm$ http://www.example.com/sites/default/newsletter/$1/English/newsletter-issue-$1.htm [R=301,L]
当我使用这个规则时,我仍然得到一个404,因为结果URL没有将第二个“$1”替换为发行号,在本例中为“50”。我得到的是

http://www.example.com/sites/default/newsletter/50/English/newsletter-issue-.htm
我使用了测试站点,它确认了第二个反向参考变量根本没有被评估。我确信我在这里遗漏了一些东西,因为这应该是一个简单的规则

在此方面的任何帮助都将不胜感激


谢谢。

奇怪的是,如果用两组括号括起来,我在重写测试仪中工作:

RewriteRule ^documents/newsletter/newsletter-issue-((.*))[.]htm$ http://www.example.com/sites/default/newsletter/$1/English/newsletter-issue-$1.htm [R=301,L]

我还跳过了文件扩展名前缀

您的规则对我来说很好,在apache 2.2.22上是的,它现在似乎可以工作了。。。。。我一定是做错了什么,因为它第一次不起作用……似乎重写测试仪有某种缺陷。我会看看我是否能提醒开发人员调查可能出现的问题。