看起来像一个简单的问题。但我根本不明白:
这条 htaccess 规则确实有效:
RewriteEngine On
RewriteRule ^m(.+)$ ?s=$1
但这不会:
RewriteEngine On
RewriteRule ^(.+)$ ?s=$1
它返回一个内部服务器错误。那个正则表达式有什么问题?为了工作应该改变什么?
看起来像一个简单的问题。但我根本不明白:
这条 htaccess 规则确实有效:
RewriteEngine On
RewriteRule ^m(.+)$ ?s=$1
但这不会:
RewriteEngine On
RewriteRule ^(.+)$ ?s=$1
它返回一个内部服务器错误。那个正则表达式有什么问题?为了工作应该改变什么?
我不知道“不起作用”的确切含义,但我认为它可能会陷入重写循环。
尝试这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^?s=
RewriteRule ^(.+)$ ?s=$1
我没有对此进行测试,但它应该做的只是在尚未添加 ?s 参数的情况下重写。
哦,我刚刚意识到您还可以在 RewriteConds 中查找实际的查询字符串。你可以试试:
RewriteEngine On
RewriteCond %{QUERY_STRING} !s=
RewriteRule ^(.+)$ ?s=$1