ワイルドカードサブドメインを使用しているときにページにリンクする際に問題が発生しています。ワイルドカードのサブドメインに他のページへのリンクがある
ユーザが自分のウェブサイトのコンテンツを見るために自分のサブドメインを持つようにしたいので、ユーザが "user1.domain.com"を入力すると、サーバはその要求をindex.phpページに送る書き換えルールを持ちますルートディレクトリ。このindex.phpページはすべてのサブドメインで使用され、クエリ文字列で渡されたサブドメインに基づいてdbからコンテンツを提供します。
この部分はうまくいきますし、index.phpのコンテンツを必要に応じて提供しています。 index.phpページが読み込まれるとメニューが表示されます(HOME | RENTALS | CONTACT US)。問題は、メニューリンクをクリックして別のページに移動したときに発生します。 URLアドレスは変更されますが、ページの内容は変更されません。
ここでは例です:私は「RENTALS」をクリックすると、私は、ユーザーがrentals.phpページにアクセスし、「USER1」サブドメインで利用可能なレンタルを表示したい...しかし、ここで何が起こっているかです:
リンクシナリオ1:
<a href="http://user1.domain.com/rentals.php">RENTALS</a> --> URL address bar changes to "user1.domain.com/rentals.php" but the page doesn't change, it still stays on the index.php content
リンクシナリオ2:
< a href="rentals.php" >RENTALS</a> --> URL address bar changes to "user1.domain.com/rentals.php" but the page doesn't change, it still stays on the index.php content
リンクシナリオ3(私はドメインをハードコードし、リンク作品をサブドメインのワイルドカードをOMMIT場合):
<a href="http://www.domain/public_site/rentals.php">RENTALS</a> --> URL address bar changes to "http://www.domain.com/public_site/rentals.php" AND IT WORKS, the rentals.php page loads and serves up the content.
シナリオ3の問題は、私はURLが読みたいです:「user1.domain.com/rentals.php」
これは書き換え条件で設定することができる場合、私は思ったんだけど、しかし、私はそれを理解することができません。
誰かが助けてくれればと感謝します!ここで
は私のディレクトリ構造である:ここで
ROOT
|
PUBLIC_SITE
|
index.php
rentals.php
contactus.php
は、Apacheのリライトルール(。第一のルールが機能する私は私の問題を解決することを期待して、それが問題を解決していなかった追加第二法則)であります
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
####Rewrite subdomain request to public_site/index.php
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule ^(.*)$ /public_site/index.php?subdomain=%2 [L]
#### Rewrite rule for rentals.php page
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com/rentals.php [NC]
RewriteRule ^(.*)$ /public_site/rentals.php?s=%2 [L]
</IfModule>