.htaccessにリダイレクトディレクティブを記述して、次のようなすべてのユーザーリクエストを内部的に転送しようとしています。

  • 言語フォルダー外のリクエストは、次のようにデフォルトの言語フォルダーにリダイレクトします。
example.com -> example.com/en
  • index.phpファイルは、末尾にスラッシュがある場合とない場合で機能するはずです。
example.com/en/ and example.com/en
  • 言語フォルダ内のすべてのリクエストは、言語クエリ文字列を使用してリクエストされたファイルにリダイレクトする必要があります。
example.com/en/contact.php -> example.com/contact.php?lang=en
  • フォルダプロジェクトの場合、すべてのリクエストは、それぞれのクエリ文字列を含むview-project.phpファイルにつながる必要があります。
example.com/en/projects/test -> example.com/view-project.php?lang=en&path=test

これが私の試みですが、http://www.example.com/deのようなリクエストでスラッシュを付けないと機能せず、http: //www.example.comをデフォルトの言語フォルダーにリダイレクトしません。

RewriteEngine On

RewriteRule ^(en|de)/(.*)$ $2?lang=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^projects/([^/\.]+)/?$ view-project.php?path=$1 [QSA,L]

どうすればこれを達成できますか?

これは重複している可能性があります。お詫び申し上げます。どこでも検索して約100件の投稿を読みましたが、探しているものが見つかりませんでした。

no answer