这是我当前的 .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f [NC,OR]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^$ /launcher/index.html [L]
RewriteRule ^en/admin$ /main/index.php?lang=en&action=acp [L]
RewriteRule ^sp/admin$ /main/index.php?lang=sp&action=acp [L]
RewriteRule ^en/(.*)$ /main/$1?lang=en [L]
RewriteRule ^sp/(.*)$ /main/$1?lang=sp [L]
我有一个启动器屏幕(工作正常),我的网站 PHP 文件是 main/index.php。我使用 $_GET 将有关哪个页面的信息传递给我的 index.php,即:index.php?action=download&file=123。有两个根级别,我将使用 /en/ 表示英语,使用 /sp/ 表示西班牙语。这些以 ?lang=en 或 ?lang=sp 的形式传递给 index.php。
我有 2 个无法解决的问题;
我的规则有一个奇怪的失败不一致。可能有更好的方法来做我想做的事情。如果有人能告诉我如何做,我将不胜感激。我是 mod_rewrite 的菜鸟
当我使用 ?variable=value 在 URL 末尾添加更多内容时,它会出现在 ?lang=en 或 ?lang=sp 之后。这意味着第二个问号会导致 $_GET 出现故障,并且那些 $_GET 传递的变量会丢失。我需要一种将两个 $_GET 与 mod_rewrite 一起附加的方法吗?