我讨厌写这篇文章,但是我从事这个工作已经太久了。
我们正在升级一个多语言站点,并且我们现在使用的语言模块处理URL的方式非常不同。我们正从domain.com/location-fr-fr/
移到domain.com/fr_FR/location/
。通过使用以下RewriteRule (.*)-fr-fr fr_FR/$1/
,我已经能够成功处理重写。我不知道英语是什么样子。 domain.com/location/
必须去domain.com/en_US/location/
我遇到问题的地方是我不能仅仅重写所有内容,因为我需要排除以/ en_US或/ fr_FR开头的所有url,但是我失败了。
我已经尝试过了,我真的认为应该起作用
RewriteRule ^(?!en_US/) http://www.google.com
我尝试在前面加一个斜杠,但都不行
RewriteRule ^(?!/en_US/) http://www.google.com
https://htaccess.madewithlove.be/同意我的观点,即它也应该起作用,但实际上却不行。我一直在使用wget进行所有测试,因此浏览器缓存不是问题。 有人可以给我一些建议吗?我愿意就如何使这项工作更好地提出任何建议。 这是一个Silverstripe网站,以防影响改写。
编辑: 删除Silverstripe重写规则后,该规则可以正常工作。