基本的には、.htaccessのこの部分が部分的に動作していますが、まだ完全にはありません。私は英語とフランス語のサイトのために私のサーバー上に2つのサブディレクトリを持っています(サブディレクトリはそれぞれen、frです)。ユーザーがURLバーに何かを入力すると、入力した内容がenまたはfrに追加されます(ユーザーのデフォルト言語がコンピュータにあるかどうかによって異なります)。.htaccess多言語サイト
domain.com/testに入力すると(言語が英語に設定されている)、domain.com/en/test/にリダイレクトします。テストがフォルダー、ディレクトリー、ファイル、またはルート・ディレクトリーにあるANYTHINGでない場合にのみ、この問題が発生します。ここで
は、これまでの作品のようなもの私の.htaccessコードです:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^(.*)$ /en/$1/ [R=301,L]
私のコードの問題は、しかし、しかし、であるユーザーは、WITH(domain.com/test/のようなものに入力された場合スラッシュ)、私の.htaccessには、すべての終わりにスラッシュを強制する別の部分があるので、うまくいきません。ユーザーがdomain.com/test.htmlに入力した場合(ドメインのルートにあるファイル)、.htaccessに.html拡張子を削除する別の部分があるため、機能しません。
基本的に、このリダイレクトは、論理的にはならない場所を除いて、すべての状況で絶対に動作する必要があります。
いずれにしても、私を助けてくれたら本当にありがとう。
私はPHPをまったく使いたくないのですが、私は.htaccessファイルの使用に興味があります。私はOPで言ったように、私は部分的に働いている。入力されたURLに最後にスラッシュがない場合は/ en /を追加します。しかし、私はそれが欲しくない場合にURLを書き換えます。例えば:ファイルがすでにルートフォルダにある場合。 – shootingrubber
元のコードにも別の問題があります。私がen/subdomainに実際にいるとき、URLに別のen /が追加されます。だから私がdomain.com/en/testにいて、例をクリックすると、domain.com/en/en/exampleに行きます。 – shootingrubber
ありがとう、それは私を助けた。 – Elkas