0

对于那些比我了解更多关于 mod-rewrite 的人的快速问题:

我有一些按顺序编写的规则,如下所示:

RewriteRule ^(en|fr) index.php?page=home&lang=$1 [L]
RewriteRule ^(en|fr)/home index.php?page=home&lang=$1 [L]
RewriteRule ^(en|fr)/terms index.php?page=terms&lang=$1 [L]

然而,第一个似乎压倒了其余的。

我试过取消,[L]但这并没有达到我的预期,它永远不会显示“条款”页面。

有任何想法吗?

4

1 回答 1

1

如果您希望http://www.example.com/enhttp://www.example.com/fr/(带有或不带有斜杠)重定向到第一项,请将第一条规则更改为:

RewriteRule ^(en|fr)/?$ index.php?page=home&lang=$1 [L]

/?匹配是否有尾部斜杠,意思$是“匹配 URL 的结尾”(如果 URL 继续,则不匹配)。

于 2013-01-29T15:28:59.133 回答