[英]How to handle GET-Parameter in PHP when modrewrite is activated?
我有点问题 我使用modrewrite将语言内容动态加载到网页中...
例:
www.mydomain.xyz/zh(英文版)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-Parameter被忽略。 我该怎么办?
使用QSA
标志:
RewriteRule ^en$ index.html?lang=en [L,QSA]
要使此功能适用于en和fr,请使用以下命令:
RewriteRule ^(en|fr)/?$ index.html?lang=$1 [L,QSA]
QSA
(查询字符串追加)标志在添加新参数时保留了现有查询参数。 只需将[QSA]
添加到您的重写规则中:
RewriteRule ^en$ index.html?lang=en [QSA];
重写规则之后,您需要[QSA]
指令
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
QSA是“查询字符串追加”,并在重写时保留查询字符串
我也建议使用(/ | $)而不是仅使用$,或者调用yourdomain.com/ensomefile.php
也会导致重写
RewriteRule ^en(/|$) index.html?lang=en [QSA]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.