0

看起来像一个简单的问题。但我根本不明白:

这条 htaccess 规则确实有效:

RewriteEngine On
RewriteRule ^m(.+)$ ?s=$1

但这不会:

RewriteEngine On
RewriteRule ^(.+)$ ?s=$1

它返回一个内部服务器错误。那个正则表达式有什么问题?为了工作应该改变什么?

4

2 回答 2

0

我不知道“不起作用”的确切含义,但我认为它可能会陷入重写循环。

尝试这个:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^?s=
RewriteRule ^(.+)$ ?s=$1

我没有对此进行测试,但它应该做的只是在尚未添加 ?s 参数的情况下重写。

于 2012-05-02T15:30:49.760 回答
0

哦,我刚刚意识到您还可以在 RewriteConds 中查找实际的查询字符串。你可以试试:

RewriteEngine On
RewriteCond %{QUERY_STRING} !s=
RewriteRule ^(.+)$ ?s=$1
于 2012-05-02T16:21:26.610 回答