私は Apache サーバーを持っており、会社の多数の Web サイトをホストしています。htaccess を使用し、URL を「ルート」ディレクトリからサブフォルダーに書き換える予定です。
これが私の実際のフォルダー構造です。
- /www (ルート)
- /www/beamstyle (beamstyle.com.hk、CodeIgniter フレームワーク)
- /www/beamcard (beamcard.com.hk、静的ファイル)
- /www/beamcard/app (beamcard.com.hk/app、CodeIgniter フレームワーク)
================================================== ==================
Beamstyle の Web サイトは、次のコードを使用して動作します。
ReWriteCond %{HTTP_HOST} ^(www.)?beamstyle.com.hk [NC]
RewriteCond %{REQUEST_URI} !^/beamstyle/.*$
RewriteRule ^(.*)$ /beamstyle/$1 [L]
私のフレームワーク (CodeIgniter) は /www/beamstyle 内にあるため、上記は機能します。
したがって、 http://beamstyle.com.hkにアクセスでき、問題なくリダイレクトされます。
================================================== ==================
しかし、ここに問題があります。実際には、ディレクトリ「/www/beamcard/」には静的な .html ファイルしか格納されていないため、beamcard の Web サイトを実行すると機能しません。私の CodeIgniter フレームワークは app/.
同じコードを使用する場合:
ReWriteCond %{HTTP_HOST} ^(www.)?beamcard.com.hk [NC]
RewriteCond %{REQUEST_URI} !^/beamcard/.*$
RewriteRule ^(.*)$ /beamcard/$1 [L]
上記のコードを使用した結果は次のとおりです。
(a) http://beamcard.com.hk/ <-- これは書き換え直後のフォルダなので問題ありません (静的ファイルのみが含まれます)。
(b) http://beamcard.com.hk/app <-- OK ではありません。これは、書き換え後に直下のフォルダーを超えて 1 つのディレクトリを移動するためです。
- これを入力すると、ロケーションバー (上部) が非表示になり、http: //beamcard.com.hk/beamcard/app/ にリダイレクトされます (同じ結果が発生するため、このリダイレクトは Codeigniter ファイルによって行われないことを確認しました)空のディレクトリに適用する場合)
================================================== ==================
私はできる限りのことを試し、非常に多くの Google 検索を行いましたが、書き換え後にディレクトリ以外のサブディレクトリで機能する htaccess スニペットを修正できませんでした。サブディレクトリにさらに進むと、「偽装」機能が失われます。
これに関するヘルプは大歓迎です!
乾杯、トーマス
================================================== ==================
更新 1
私の状況をよりよく説明するために、いくつかの使用例をまとめました。
【事例紹介】
** 簡単にするために、"app" ディレクトリが空であると仮定しましょう **
(1) http://beamcard.com.hkと入力すると、サーバー内のページ "/www/beamcard/index.html" が読み込まれます。ページの読み込みが完了すると、ロケーション バーに「http://beamcard.com.hk/」と表示されます。
(2) http://beamcard.com.hk/contact_us.htmlと入力すると、サーバー内のページ "/www/beamcard/contact_us.html" が読み込まれます。ページの読み込みが完了すると、ロケーション バーに「http://beamcard.com.hk/contact_us.html」と表示されます。
(3) http://beamcard.com.hk/appと入力すると、「空のファイル リスト」が読み込まれます。ページの読み込みが完了すると、ロケーション バーに「http://beamcard.com.hk/app/」と表示されます。
(4) http://beamcard.com.hk/app/と入力すると、「空のファイル リスト」が読み込まれます。ページの読み込みが完了すると、ロケーション バーに「http://beamcard.com.hk/app/」と表示されます。
================================================== ======================
現在、(1) と (2) が動作します。
ただし、(3) と (4) の場合、ページの読み込みが完了した後、ロケーション バーが「http://beamcard.com.hk/beamcard/app/」にリダイレクトされ、「/beamcard/」が「表示」されます。この部分は、理想的にはサイトの訪問者から隠されている必要があります。