0

私は 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/」が「表示」されます。この部分は、理想的にはサイトの訪問者から隠されている必要があります。

4

1 に答える 1