.htaccess 使用多个正则表达式和 GET 值赋值重写

.htaccess rewrite with multiple regex and GET value assignment

当重写规则中没有正则表达式时,设置 GET 变量没有问题。例如,当我执行 sample.html?test=OK 时,以下内容按预期工作,sample.php 中的 test 变量设置为 OK.

RewriteRule ^sample.html sample.php [NC]

当重写规则中有正则表达式时,问题就出现了。例如,以下内容与上述内容不同。

RewriteRule ^sample-(.*).html sample.php?one= [NC]

我想像 sample-123.html?test=OK 一样执行 URL 而我同时让 onetestsample.php.

中获取它们的值

我在这里阅读了多个问题,但没有人回答此类问题。我看到不同的答案建议使用 RewriteCond。我试过了,但没有成功,因为我根本不是 .htaccess 方面的专家。

非常感谢。

您需要在此处 QSA 标记:

RewriteRule ^sample-(.+)\.html$ sample.php?one= [L,QSA,NC]
  • QSA(查询字符串追加)标志在添加新参数时保留现有查询参数。