2012-03-21 3 views
0

サイトをサブディレクトリに移動しました。
すべてのリンクを変更する代わりに、htaccess経由で301のリダイレクトを行いたいと思います。
誰かがwww.example.com/test.htmlにアクセスしようとすると、実際にwww.example.com/website/test.htmlにアクセスしてほしいと思っています。
誰かがwww.example.com/documents/test.pdfに行くと、www.example.com/website/documents/test.pdfに移動します。
基本的にすべてのリクエストに/ website /ディレクトリを追加したいと思います。私はこのサイトをルートフォルダからこのサブディレクトリに移動したからです。htaccssリダイレクト

私には1つの制限があります。www.example.com/website1/がwww.example.com/website1/に移動するようにしたいと思います。これによって解決策が変わった場合、私は両方の解決策を教えてください。私はこれに柔軟に対応しています。

+0

3つの固有の質問です。最初はすべてのファイル/フォルダのリダイレクトでした。 2つ目はリダイレクションのトラブルシューティングでした。これは、1つのディレクトリを除くすべてのディレクトリのリダイレクトです。 – Chris

答えて

0

2の基本的なアプローチ(そこにいくつかのより多くのですが、彼らはあなたのリライトロジック(他のルール)に依存ので、すべてのシナリオに適していないかもしれない):

まず:

# Redirect all incoming requests into /website/ subfolder 
# but excluding /website1/ folder 
# First condition is to prevent infinite redirect 
RewriteCond %{REQUEST_URI} !^/website/ 
RewriteCond %{REQUEST_URI} !^/website1/ 
RewriteRule ^.*$ http://www.example.com/website%{REQUEST_URI} [R=301,L] 

秒:

# Redirect all incoming requests into /website/ subfolder 
# but excluding /website1/ folder 
# Condition is to prevent infinite redirect 
RewriteCond %{REQUEST_URI} !^/website/ 
RewriteRule ^(?!website1/).*$ http://www.example.com/website%{REQUEST_URI} [R=301,L]