我有点问题。 我使用modrewrite将语言内容动态加载到网页中......
示例:
www.mydomain.xyz/en(英文版) www.mydomain.xyz/fr(法文版) ...
我的.htaccess:
RewriteRule ^en$ index.html?lang=en
可是:
www.mydomain.xyz/en?foo=bar
和
<?php
if(isset($_GET["foo"])) {
echo "Yeah! There is some stuff!";
}
?>
不起作用......忽略GET参数。我该怎么办?
答案 0 :(得分:2)
使用QSA
标志:
RewriteRule ^en$ index.html?lang=en [L,QSA]
要使用en和fr工作,请使用:
RewriteRule ^(en|fr)/?$ index.html?lang=$1 [L,QSA]
QSA
(查询字符串追加)标记在添加新查询参数时保留现有查询参数。答案 1 :(得分:1)
只需将[QSA]
添加到重写规则中:
RewriteRule ^en$ index.html?lang=en [QSA];
答案 2 :(得分:0)
您需要在重写规则
之后立即执行[QSA]
指令
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
QSA是“查询字符串追加”并在重写时保留查询字符串
我还建议使用(/ | $)而不是$,否则调用yourdomain.com/ensomefile.php
也会导致重写
RewriteRule ^en(/|$) index.html?lang=en [QSA]