[英]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.