2009-04-01 20 views
1

は、ここで私はhttp://www.example.com/whateverに送られています、私はhttp://www.example.com/~new/whateverを要求なぜこの.htaccessは私のRewriteBaseをスキップしますか?

# invoke rewrite engine 
     RewriteEngine On 
     RewriteBase /~new 


    # force non domain.com to www.domain.com 

    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L,NC] 

毎回私の.htaccessの初めです。私は$ 1の周りに角括弧を置き、http://www.example.com/[whatever]を得る。

なぜ私のRewriteBase varを削除していますか?

また、.htaccessに環境変数を設定して、RewriteBaseを設定し、$ 1の前に置いてリダイレクトを有効にする方法がありますか?

答えて

3

まあを設定し、それがでRewriteBaseがどのように機能するかのようなものだ:それはあなたの要求から離れて、すべての主要なパス情報を吹く、そしてその後でRewriteBaseを再挿入。しかし、あなたの例では、完全修飾URLへのリダイレクトを与えるので、再挿入を実行することはできません。

RewriteBaseを使用する必要があり、「なぜそうではないのですか」と仮定するのではなく、あなたがしようとしていることを正確に定義し、私が欲しいものをやっているRewriteBase "。 RewriteBaseはそれとは関係ありません。

+0

私のサイトは現在/〜new /トップレベルドメインにありますが、プロダクションに行くとTLDになります。私の.htaccess一度サイトがサブディレクトリにあるとしたら、後でTLDに切り替えるときにRewriteBaseに変更する/ – alex

+0

... 'RewriteBase /〜new'を' RewriteBase/'に変更するだけですべてがすぐに動作するようにしてください – alex

+0

すべてあなたがRewriteBaseを取り出しただけで、どのような振る舞いが問題になるのでしょうか? – chaos

0

sthです。ファイルの先頭に次のように書き換えベースに、後

RewriteCond %{HTTP_HOST} ^webmaster-eye\.de$ 
RewriteRule ^(.*)$ http://www.webmaster-eye.de/$1 [L,R=301] 
+0

申し訳ありませんでした:( – alex

関連する問題