正确的.htaccess RewriteCond?

时间:2017-05-09 13:21:43

标签: .htaccess mod-rewrite

我花了好几个小时寻找解决方案,但.htaccess规则似乎超出了我的想法。我有这个规则:

RewriteRule ^(.*)$ wikka.php?wakka=$1 [QSA,L]

我只有在域名以外的任何内容时才需要应用它,即。 www.example.com/xyz但不仅仅是www.example.com,因为我只需要显示一个简单的index.php而不是{无地址翻译}。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

RewriteRule ^(.*)$ wikka.php?wakka=$1 [QSA,L]

您只需将*模式中的RewriteRule(0或更多)更改为+(1或更多)。例如:

 RewriteRule (.+) wikka.php?wakka=$1 [QSA,L]

我还删除了锚点^$,因为这里不需要它们。无论如何你都抓住了所有东西,所以说你从头到尾抓住所有东西都没有必要。

此外,除非您需要原始请求中的查询字符串,否则我会删除QSA标记。该规则本身将生成?wakka=wikka.php&wakka=xyz形式的重复查询字符串 - 其中xyz是初始请求。这仍然是"工作"如果用PHP wakka=xyz读取URL参数将覆盖之前的参数。