2012-03-10 2 views
1

htaccessを使用してサブドメインを実装しようとしています。私が入力したときにhtaccessを使用する動的サブドメイン:ブラウザでURLを変更する必要はありません

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{HTTP_HOST} !^www. 
    RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain.com(.*)$ 
    RewriteRule ^(.*)$ http://domain.com/index.php?/public_site/main/%1/$1 [L] 
</IfModule> 

ahser.domain.comブラウザのURLが変更されます。絶対URLがRewriteRuleで使用されているときにこれを起こさないhtaccessオプションがありますか?

+0

'RewriteCond'から '%'表記で一致する部分を正しく取得しています。私はその問題をあなたのコードで、http://stackoverflow.com/questions/9632242/hostgator-wildcard-subdomain-mapping-to-urlという質問で見つけました。あなたは解決策を使用しましたが、答えを受け入れませんでした。 – Kaz

+0

申し訳ありません。私は新しいユーザーです。私は答えを受け入れるために少なくとも15の評判が必要です。 – santosh

答えて

0

ドメイン内に完全なURLを書き換えないでください。それは別のウェブサイトに行くので、リダイレクトが生成されます!そこにmicrosoft.comを置くことができます。どのようにリダイレクトせずに動作するのでしょうか?

あなたがしなければならないことは、ウェブページが元のドメインで動作することを確認することです。だからクライアントがmyname.domain.com/...を書き直す方法について質問すると、それはmyname.domain.com/index.php?public_site/main/myname/...に書き換えられます。ドメインを同じにしておきます。 index.php?は、これらのドメインのいずれかで動作するようにすることができます。例えば、これでも動作する可能性があります:

http://OTHER.domain.com/index.php?public_site/main/MYNAME/... 

e.e.e.どの仮想ホストがそのパスにアクセスするかは関係ありませんので、設定してください。あなたはそれを持っていたら

、書き換えは、単に行うことができます。

# will not trigger redirect 
RewriteRule ^(.*)$ /index.php?/public_site/main/%1/$1 [L] 

あなたは今、同じリライトと一致した長いURLへのURLをリダイレクトしているので、ループを導入しないように注意する必要があり同一ドメインを破棄する。 URLがすでに/index.php?public_site/で始まっている場合、この書き換えを適用しない場合は、追加のRewriteCondが必要です。

+0

うん...あなたは正しいです。なぜ私はリダイレクトがそのように動作する必要があるのか​​理解しています。 – santosh

+0

hmmm ...あなたは正しいです。なぜ私はリダイレクトがそのように動作する必要があるのか​​理解しています。私はユーザ側で簡単なURLを求めていました。私は、ユーザー側で簡単なURLを与える私のサイト上でのサブドメインを実装していた場合ので、私はPHPでそれをやってするのhtaccessよりも優れていると思います。 – santosh

関連する問題