重写规则替代参数

时间:2013-04-30 18:05:36

标签: apache mod-rewrite

之间有什么区别吗?
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]

在第一个基本网址是前缀,而在第二个基础网址是前缀,而不是。 如果有任何差异,那么它是什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

有关详细信息,请参阅Apache mod_rewrite online documentation for RewriteRule并查看有关规则替换部分的部分。