【问题标题】:mod_rewrite single "directory" retain the rest of the URL vars [duplicate]mod_rewrite 单个“目录”保留 URL 变量的其余部分 [重复]
【发布时间】:2013-02-21 19:46:15
【问题描述】:

我可以让一个单一的 URL var 获得一个目录的别名,然后任何其他 URL 变量都保留在字符串中吗?

示例: 如果我有一个联系页面并想根据快速 URL 变量交换“关于”选择。

?page=contact => 使用所有默认值加载联系人页面

?page=contact&regarding=bug => 使用自动选择的错误报告的相关选择选项加载联系人

#Enable rewrite engine
RewriteEngine On
#contact,contact/ -> page=contact
RewriteRule ^contact?$ ?page=contact [L]
RewriteRule ^contact/?$ ?page=contact [L]

这适用于域/联系人/,但如果我添加额外的 URL 变量,即使它们出现在 URL 中,它们也会被删除。

我知道我可以这样做:

RewriteRule ^contact/bug/?$ ?page=contact&regarding=bug [L]

但我宁愿让它接受任意数量的标志,以防我想在那里做额外的事情。

我希望能够拥有 domain.com/contact/ 和 domain.com/contact/?regarding=bug

【问题讨论】:

  • 我认为你是对的 mario,QSA 标志似乎是我所追求的。谢谢。
  • 提供传入 URL 的示例,这样人们就不必猜测您要完成的工作。
  • faa: last edit(最后一行问题)有例子

标签: php apache .htaccess mod-rewrite


【解决方案1】:

附加 QSA 标志是我所追求的。感谢上面的 mario 指出这一点。

作为参考,代码如下:

#Enable rewrite engine
RewriteEngine On
#contact,contact/ -> page=contact
RewriteRule ^contact?$ ?page=contact [L,QSA]
RewriteRule ^contact/?$ ?page=contact [L,QSA]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2018-08-03
    • 1970-01-01
    • 2021-09-04
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多