2011-07-20 19 views
2

.htaccessジャングルを介して自分自身を方向づけようとしています。私は書き直しの問題を1つに語りました。そのようなものを持たない住所を入力する。.htaccess - デフォルトで "sv /"(リダイレクト)の言語サブディレクトリを追加します

例:ビジタータイプmysite.com/kontakt。これにより、サイトのデフォルト言語(mysite.com/sv/kontakt)に変更されます。または、mysite.comと入力すると、彼/彼女はmysite.com/sv/になります。

私はこのサイトをMAMPを使用してローカルに開発しています。サイトはサブディレクトリにあり、ここでは難しい部分です... .htaccessファイルでこれをどのように並べ替えるのですか?

使用される現在のコード:

RewriteBase /mysite/ 
RewriteCond %{REQUEST_URI} !^(sv|en) 
RewriteRule ^(.*)$ sv/$1 [L,R=301] 

そして、それがlocalhost/mysite/からlocalhost/sv/に私を取ります。正しくはありません。

答えて

3

はこの1つを試してみてください:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase /mysite/ 

RewriteRule ^(?!(?:sv|en)/)(.*)$ sv/$1 [R=301,L] 
  1. これは/フォルダ/個人用サイトに.htaccessファイルに配置する必要があります。それが言語部分(sv又はen)はスラッシュ/が続くことを期待よう

  2. スラッシュ末尾なしlocalhost/mysite/svにアクセスする場合、ルールはlocalhost/mysite/sv/svにリダイレクトします。

P.S. VirtualHostの設定を調べると、http://localhost/mysite/sv/kontakt経由であなたのウェブサイトにアクセスすることのような「トリッキーな部分」がはるかに少なくなります(私はあなたが同意すると確信しています、そのhttp://mysite.dev/sv/kontaktはうまく見えます)。

+0

これは機能します!ありがとうLazyOne!はい、私はVirtualHostの設定を検討する必要がありますが、今週のクライアントショーケースではライブサイトでその構造も使用するため、サブディレクトリで作業する必要があります。 –

関連する問題