当我执行mod_rewrite时,我丢失了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
你看到这里有什么错误吗?我很感激你的帮助!
答案 0 :(得分:2)
您的RewriteRule
需要
RewriteRule ^([a-zA-Z]{2})/(.+)$ $2?country=$1 [QSA,L]
请注意,网址参数不可用于RewriteRule
内的匹配。如果您只需要附加一个额外的URL参数,您可以使用[QSA]
标记来处理附加原始网址参数。