我遇到了一个对我来说似乎很奇怪的情况。似乎构建 apache 重写规则时的反向引用变量在第一次使用后会丢失。
我的要求是更改旧的 URL 模式以符合新的路径模式,例如:
www.example.com/documents/newsletter/newsletter-issue-50.htm
成为
www.example.com/sites/default/newsletter/50/English/newsletter-issue-50.htm
如您所见,新的 URL 模式需要在 2 个位置指定问题编号。
我的重写规则如下:
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
我已经使用了这个测试站点,它确认第二个反向引用变量根本没有被评估。我肯定在这里遗漏了一些东西,因为它应该是一个简单的规则。
对此的任何帮助将不胜感激。
谢谢。