0

多言語サイトのルールを書いてみました。たとえば、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 がリダイレクトされることはありません。私はおそらくルールを書く際に何かを見逃していました...

4

1 に答える 1