たとえば、ルート ディレクトリにone.phpとtwo.phpという 2 つのファイルがあります。実際に物理ディレクトリをen + deにすることなく、これらのURLを介してそれらにアクセスしたいと思います。
- mydomain.com/en/ one
- mydomain.com/en/ 2
- mydomain.com/de/one _
- mydomain.com/de/two _
したがって、最初のディレクトリは「無視」され、言語設定を含む GET 変数を php ファイルに渡すだけです。2 番目のディレクトリは、拡張子のない php ファイルです。
これは、これまでのところ、ファイル拡張子を失うために htaccess で使用しているものです。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
更新/解決策
これは非常に便利です:言語検出のための .htaccess ルール
。
RewriteRule ^(en|de|fr)/(.*)$ $2?lang=$1 [L,QSA]
RewriteRule ^(.*)$ $1?lang=en [L,QSA]
もう 1 つの追加質問
mydomain.com/en/ one /id45
変数として id45 を one.php に渡したい場合、htaccessのどの行を追加する必要がありますか?