2011-12-24 35 views
0

私は小さなhtaccessファイルを持っています。これにはいくつかの単純なルールが含まれています。
まず、私はリダイレクトするか、メインドメインの開始でWWW追加したい:私はURIからフォルダSERVを削除する第二段階ではリダイレクトが正しく動作しない

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(www|serv)\.(.*\-.*)\.com [NC] 
RewriteRule ^(.*) http://www.maindomain.com%{REQUEST_URI} [L,R=301] 

を。
私は、次のしているフォルダ構造:

www.maindomain.com

  • SERV/

は、私は次のルールを持っていることを行うにはメインのWebページの

  • 内容:

    RewriteCond %{HTTP_HOST} ^serv.* [NC] 
    RewriteCond %{REQUEST_URI} !^/serv.* [NC] 
    RewriteRule ^(.*) /serv/$1 [L,QSA] 
    

    これまでのところ動作しますが、私自身のだから私のURIは、時々そのwww.maindomain.de/search/searchような何かを得る

    RewriteEngine On 
    RewriteBase/
    RewriteRule ^search/$ search.php [L,QSA] 
    

    :上記の条件とルールとルールの競合を記述します。

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^(www|serv)\.(.*\-.*)\.com [NC] 
    RewriteRule ^(.*) http://www.maindomain.com%{REQUEST_URI} [L,R=301] 
    
    RewriteCond %{HTTP_HOST} ^serv.* [NC] 
    RewriteCond %{REQUEST_URI} !^/serv.* [NC] 
    RewriteRule ^(.*) /serv/$1 [L,QSA] 
    
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^search/$ search.php [L,QSA] 
    

    何が問題である:ここでは

    は私の完全なのhtaccessファイルのですか?私は間違いを見つけません。サブドメインは、SERVではなく、URIは、サブドメインがWWWにリダイレクトされますSERVが含まれていない場合

    は、さらに私は、それが可能であるかどうかを知りたいです。

  • 答えて

    1

    サブドメインはSERVではなく、URIを追加し、サブドメインがあなたの質問の最後の部分については、WWW

    にリダイレクトされますSERVが含まれていない場合には、可能な場合編集

    #if the subdomain is not serv RewriteCond %{HTTP_HOST} !^serv\.[^\.]+\.de$ [NC] #and the uri does not contain serv RewriteCond %{REQUEST_URI} !^.*serv.*$ [NC] #redirect to www RewriteRule .* http://www.maindomain.de%{REQUEST_URI} [NC,L,R=301] 

    あなたの.htaccessファイルに次のよう
    私はあなたの実際のホストに一致するように変更することができ、上記宿主で%1つの参照を置き換えます。

    質問の最初の部分については、下のルールはwwwで始まらないホストと一致します。またはserv。ドメインにはダッシュがありません。つまり、 ' - 'がないためwww.maindomain.comと一致します。

    RewriteCond %{HTTP_HOST} !^(www|serv)\.(.*\-.*)\.com [NC] 
    

    これは、観察したとおり無限のリダイレクトになります。それは、次の

    #if host is NOT www.anything.com or serv.anything.com 
    RewriteCond %{HTTP_HOST} !^(www|serv)\.[^\.]+\.com$ [NC] 
    #redirect to www.maindomain.com 
    RewriteRule .* http://www.maindomain.com%{REQUEST_URI} [L,R=301] 
    
    +0

    あなたのRewriteRuleに変更し

    修正するために動作しないようです。参照%1は解決されません。メインドメインを直接呼び出すと、リダイレクトが多すぎるというエラーが表示されます。 – CSchulz

    +0

    もう一度試してみてください。結果は無限ループになります。 http://wiki.../NotTheWikiFolderからのリダイレクトが機能します。 – CSchulz

    +0

    申し訳ありません - 私はタイプミスがあり、上記で修正されたピリオド「[^ \。]」を逃すのを忘れました –

    関連する問題