2017-02-21 31 views
-2

ワイルドカードサブドメインルーティングに問題があります。私は*.website.comを追加し、Serverエイリアスを追加しました。 subdomain.website.comwebsite.comです。フレームワーク - ワイルドカードサブドメインwebsite.com/user/username to username.website.com

しかし、subdomain.website.comにはwebsite.com/user/username/と表示します。 print_r($_GET)は私にarray([user/username] =>)を返します。

PS:連絡先、約ページなど)がusername.website.com/page(その他の例:username.website.com/contactusername.website.com/news/id/news-name.htmlなど)と表示されます。

どうすればこの問題を解決できますか?

+0

なぜ-2投票?これはあまりにも悪いか分からない質問ですか? –

答えて

1

1 * .domain.com
2 Apacheの設定のvhost上の* .domain.comワイルドカードエイリアス(多くのチュートリアルを持って、Googleで検索)
3を承認するように構成してDNS $ _SERVER PHPグローバルで現在のドメイン名を取得します。論理を使って自分の魔法を作ってください。
OBS:私は、URLに行けば、あなたのサーバーを設定するために遅らせる場合は、そう単純ではありませんbecouse持続は、Apacheを再起動が後の仮想ホスト

+0

そしてhtaccessを使う必要はありませんか? –

+0

フレンドリーなURL設定には.htaccessを使用しますが、サブドメイン設定には使用しません –

+0

Htaccess私はすでに書いてあり、動作します。 :)しかし、今私はサブドメインのルーティングを編集する必要があります –

0

を設定することを忘れないでください:subdomain.example.com/test - >しますprint_r ($ _GET)は私を示しています

Array([user/subdomain], [test]) 

私がURLに行けば:example.com/user/subdomain/test - >ますprint_r($ _ GET)私を示しています

Array([user/subdomain/test]) 

これは私のhtaccessファイルでありますコード:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC] 
RewriteRule (?!^$)^.*$ http://example.com/user/%1 [P,NC,L] 

だから、私は、このような方法で、ルータでの私のコードを編集した:

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$method = $_SERVER['REQUEST_METHOD']; 

if(array_key_exists('HTTP_X_FORWARDED_HOST', $_SERVER) && count($_GET) >= 2) { 
     $subdomain = $_SERVER['HTTP_X_FORWARDED_HOST']; 
     $sub = str_replace('.'.$_SERVER['SERVER_NAME'], '', $subdomain); 
     $arr = array_keys($_GET); 
     $uri = $uri.'/'.$arr['1']; 
    } 

if(array_key_exists('HTTP_X_FORWARDED_HOST', $_SERVER) && count($_POST) >= 2) { 
     $subdomain = $_SERVER['HTTP_X_FORWARDED_HOST']; 
     $sub = str_replace('.'.$_SERVER['SERVER_NAME'], '', $subdomain); 
     $arr = array_keys($_POST); 
     $uri = $uri.'/'.$arr['1']; 
    } 

しかし、私はもっと良い方法がなければならないと思います。助け、助言に非常に感謝するでしょう:)

+0

誰ですか? –

0

今は論理ですが、私は、.htaccess上で不必要な複雑なことを避けることをお勧めします。PHPでのルーティングと.htaccess上のフレンドリなURLだけを実行して、サブドメインがPHPのブートストラップindex.phpに解決策を模擬して

関連する問題