多言語サイトのルールを書いてみました。たとえば、www.hostname.com/fr & www.hostname.com/de は問題ありませんが、他の言語タグを試すと www.hostname.com/en にリダイレクトされます。www.hostname.com/it は www.hostname.com/en にリダイレクトし、www.hostname.com/es は www.hostname.com/en にリダイレクトします。
「ポジティブな」方法でいくつかのルールを作成することに成功しましたが、追加するたびに ! 否定的なルールを作成するために、それは機能しません。
例えば :
RewriteCond %{HTTP_HOST} ^www.hostname.com$
RewriteCond %{REQUEST_URI} ^/?([a-z]{2})/?$
RewriteCond %{REQUEST_URI} ^/?(fr|de)/?$
RewriteRule (.*) http://www.hostname.com/en [L,R=301]
このコードは、すべてを hostname.com/en にリダイレクトします。en にリダイレクトする fr et de とは異なるタグのみが必要です。だから私は試しました:
RewriteCond %{HTTP_HOST} ^www.hostname.com$
RewriteCond %{REQUEST_URI} ^/?([a-z]{2})/?$
RewriteCond %{REQUEST_URI} !^/?(fr|de)/?$
RewriteRule (.*) http://www.hostname.com/en [L,R=301]
! を追加しただけです。URL がリダイレクトされることはありません。私はおそらくルールを書く際に何かを見逃していました...