【问题标题】:Mod rewrite removes parameters from URLMod rewrite 从 URL 中删除参数
【发布时间】:2013-10-05 15:45:10
【问题描述】:

我在执行 mod_rewrite 时丢失了 URL 参数,我不明白为什么...

为了进行本地化,我必须在 URL 中添加国家代码。所以我的旧网址:

原网址:

www.domain.com/mail_confirmation.php?id=222 

现在看起来像

www.domain.com/us/mail_confirmation.php?id=222

Mod 重写应该调用:

www.domain.com/mail_confirmation.php?id=222?country=us

这是我需要帮助的规则。它没有按照我的预期做,并且一路丢失参数:

RewriteRule ^([a-zA-Z]{2})/(.+)\?(.+) $2?$3&country=$1

另一个可能会影响的规则是文件开头的这条:

RewriteRule ^([a-zA-Z]{2})/?$  index.php?pais=$1

你看到这里有什么错误吗?非常感谢您的帮助!

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    您的RewriteRule 必须是

    RewriteRule ^([a-zA-Z]{2})/(.+)$ $2?country=$1 [QSA,L]
    

    请注意,URL 参数可用于在RewriteRule 中进行匹配。如果您只需要附加一个额外的 URL 参数,您可以与 [QSA] 标志一起执行此操作,该标志会为您附加原始 URL 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      相关资源
      最近更新 更多