2012-03-09 11 views
0

私は過去3時間、hostgator共有ホスティングサーバーでこの問題に苦労しています。これは最も簡単な問題です。hostgator:URLへのワイルドカードサブドメインのマッピング

これは私が起こるしたいマッピングです: subdomain.domain.com - > www.domain.com/test.php?user=subdomain

が、私は「subdomain.domainに入るたびに、いくつかの理由で.com "リダイレクトは起こらず、ブラウザでもURLは変更されません。そして、私はロードされたページにtest.phpファイルがリストされているのを見ています(サーバ上の唯一のファイルは.htaccessとtest.phpです)。

これは.htacessコード

 <IfModule mod_rewrite.c> 
      RewriteEngine On 
      RewriteBase/

      <IfModule mod_proxy.c> 
        RewriteCond %{HTTP_HOST} !^www. [NC] 
        RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC] 
        RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [P,L] 
      </IfModule> 

      <IfModule !mod_proxy.c> 
        RewriteCond %{HTTP_HOST} !^www. [NC] 
        RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC] 
        RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [R=301,L] 
      </IfModule> 
    </IfModule> 

であり、これはtest.phpをコード

<?php echo $_GET['user']; ?> 

で誰もがここでの問題が何であるかを知っているのですか?サポートは私にとって役に立たなかった。私は、サーバーの設定に何か問題があると思います。

答えて

0

RewriteCond backreferencesドル記号ではなくパーセント記号を使用してください。 %1は$ 1ではありません。

RewriteCond %{HTTP_HOST} !^www. [NC] 
RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC] 
         ^%1    ^%2 
RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [R=301,L] 
      ^$1          ^^^^ oops 

$1は、左側の正規表現から何かを引き出すことを意味します。 %1はRewriteCondから引き出すことを意味します。あなたは、$2がぶら下がっているバックリファレンスであるという事実をリライタが黙らせないと仮定して、ユーザパートとしての試合全体を固執しているかもしれません。

+0

私はこれを試しましたが、同じ問題が残っています。私はこれをサーバー構成によって拒否されたエラーログクライアントに表示します:/home/user/public_html/.htaccess – santosh

+0

問題が "うまくいかない"場合は同じ問題です。以前と全く同じ方法で失敗していますか?(変更によって無差別に違いはありませんか?) – Kaz

+0

domain.com URLを要求するときにindex.phpファイルがないと、これは一般的なサーバーエラーであることがわかりました。あなたの提案と私はそれが仕事を得た。ありがとう。 – santosh

関連する問題