これが私の現在の.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/ を使用する 2 つのルート レベルがあります。これらは、?lang=en または ?lang=sp として index.php に渡されます。
解決できない問題が 2 つあります。
私のルールには、失敗する奇妙な矛盾があります。私がやろうとしていることを行うには、おそらくもっと良い方法があります。誰かが私に方法を教えていただければ幸いです。私は mod_rewrite の初心者です
?variable=value を使用して URL の末尾にさらに何かを追加すると、?lang=en または ?lang=sp の後に発生します。これは、2 番目のクエスチョン マークによって $_GET に不具合が生じ、$_GET で渡された変数が失われることを意味します。mod_rewrite と一緒に 2 つの $_GET を追加する方法が必要ですか?