【问题标题】:.htaccess rewrite URL with additional question mark “?”.htaccess 用附加问号“?”重写 URL
【发布时间】:2017-10-19 13:28:01
【问题描述】:

使用 .htaccess 我无法使用这样的链接:

/quiz/results/solution-one/?email=myemail@domain.com

进入

/results.php?level=4&email=myemail@domain.com

(solution-one 应该变成 level=4)

我花了几个小时构建 .htaccess 代码:

Rewriterule  ^quiz\/results\/solution-one/(.*)/?$ /var/www/domain.com/public_html/results.php?level=4$1 [QSA,L]

或者这个:

Rewriterule  ^quiz\/results\/solution-one/([=@.a-zA-Z-]*) /var/www/domain.com/public_html/results.php?level=4&$1 [QSA,L]

但它不起作用。

提前致谢!

【问题讨论】:

  • 为什么您认为您现有的规则会匹配 URL?
  • 我最近的匹配是这个:Rewriterule ^quiz\/results\/solution-one/([=@.a-zA-Z-]*) /var/www/domain.com/ public_html/results.php?level=4&$1 [QSA,L] ,但如果我在电子邮件之前添加“问题掩码”,它就不起作用。
  • 那是什么“匹配什么?”部分暗示。

标签: .htaccess mod-rewrite query-string


【解决方案1】:

尝试:

RewriteEngine on
Rewriterule  ^quiz/results/solution-one/?$ results.php?level=4 [NC,QSA,L]

没有文件路径,但相对于根目录。并且没有对查询字符串进行测试(不是 Rewriterule 测试 uri 的一部分)

【讨论】:

  • 感谢您的解决方案,但它不起作用。它只有 [level] => 4 并且错过了电子邮件。
  • 你确定吗?因为用[QSA],应该是自动添加的。
  • 没有其他 .htaccess 规则?
  • 还有很多其他的.htaccess 代码。我会试着清理一下,我会在这里复制。
猜你喜欢
  • 2013-09-03
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2013-12-24
相关资源
最近更新 更多