1

有没有区别

RewriteRule ^([a-zA-Z0-9\/\-_]+)$ http://www.example.com/index.php?url=$1 [QSA,L]

RewriteRule ^([a-zA-Z0-9\/\-_]+)$ index.php?url=$1 [QSA,L]

在第一个中,base url 是前缀,而在第二个中,它不是。如果有任何区别,那是什么?

4

1 回答 1

1

这取决于当前站点是否在域 www.example.com 上。

如果当前站点是 www.example.com,那么您的第一条规则将被 Apache 转换为与第二条规则完全相同。

如果当前站点不是 www.example.com,则 Apache 不会进行静默重写,而是发出外部重定向(就像您在RRewriteRule 的末尾添加了一个标志一样)。

有关更多详细信息,请参阅RewriteRule 的 Apache mod_rewrite 在线文档,并查看有关规则的替换部分的部分。

于 2013-05-01T17:58:50.680 回答