現在、次のコードを.htaccessに追加しました。このコードは、ブラウザの言語を検出し、これが正常に動作しますRewriteCond HTTP:Accept-Languageすべてのサブフォルダ
RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^(es.*) [NC]
RewriteCond %{REQUEST_URI} !(^/images/.*)
RewriteCond %{REQUEST_URI} !(^/es/.*) [NC]
RewriteRule ^(.*)$ /es/$1 [L,R=301]
、彼らが自動的に送信されているスペイン語の訪問mysite.comを持つユーザーはmysite.com/es/する/ ES/
するときにスペイン語の訪問者を転送し、サブフォルダでは動作しません。たとえば、同じユーザーがmysite.com/page/にアクセスした場合、mysite.com/es/page/に送信されません。
すべてのサブフォルダで動作するようにコードを変更するにはどうすればよいですか?
あなたは自動的にこのようなものはありませんけれどもwww.site.com/page/test/にリダイレクトされますsite.com/page/test/あなたが訪問する場合は、WWWは
rewriteCond %{HTTP_HOST} !site.com
rewriteRule ^(.*)$ site.com/$1 [R=301,L]
をリダイレクトすると、それは可能であると同様言語ではwww.site.com/page/test/からwww.site.com/es/page/test/に移動しないようです。
ありがとうございます。 1000以上のサブフォルダ(各ページ/投稿)を持つブログでは、不可能な作業になります。 – Lisa
その場合、httpd.confや/ etc/apache2/sites-available/defaultのようなメインのApache設定ファイルにこれらのルールを入れてみてください。 – Ansari
ルートアクセスなしでこれを行う方法はありますか?私は、.htaccessでRewriteCond%{HTTP:Accept-Language}と言い、ルートとすべてのサブフォルダをルートとすべてのサブフォルダに伝えることができると期待しました。 site /にアクセスした場合、wwwのリダイレクトは可能ですか? rewriteCond%{HTTP_HOST}!site.com rewriteRule ^(。*)$ http://www.site.com/$1 [R = 301、L] page/test /あなたは自動的にwww.site.com/page/test/にリダイレクトされます。しかし、このようなものはwww.site.com/page/test/からwww.site.comに行くための言語では機能しません。/es/page/test/ – Lisa