0

私の非常に親愛なるStackoverflowコミュニティ、

私は次のリダイレクトの問題を抱えており、何度か失敗した後、悟りを求めてここに来ました。私の問題は次のとおりです。ドメインがあり、「www.mydomain.com」と呼びましょう。「public_html」ディレクトリには、次の2つのフォルダがあります。

public_html

public_html / my_app /

public_html / my_other_app /

まず、URL「www.mydomain.com」を入力すると、同じURLを維持したまま、フォルダ「my_app」のコンテンツにリダイレクトされるようにしたいと思います。実際、これはすでに達成しているので、「www.mydomain.com」と入力すると、「www.mydomain.com/index.php」にリダイレクトされます。これは、実際には「public_html / myapp/index.php」スクリプトに対応します。 'myapp'の下。

ここで、「other.mydomain.com」というサブドメインが必要です。このサブドメインは「my_other_app」フォルダーのコンテンツにリダイレクトする必要がありますが、.htaccessをこのために機能させると同時に、最初のケースも。

つまり、これは基本的に、メインドメインが1つのフォルダーにリダイレクトされ、サブドメインが別のフォルダーにリダイレクトされ、両方のフォルダーがpublic_htmlディレクトリの下にあるということです。

どんなヒントも歓迎します。

参考までに、現在の.htaccessファイルの下に投稿します。

RewriteEngine On

# redirect to www prefix
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
# if start with www and no https then redirect
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www.mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
# rewrite URL to trim folder
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule ^$ /login [L,R=301]
RewriteRule ^(.*)$ test/$1 [L]

これは実際には私のメインドメインで機能し、URLをhttpsに書き換えます。'other.mydomain.com'を個別に処理し、'/ my_other_app /'サブフォルダーにリダイレクトするには、ここに何かを追加する必要があります

4

1 に答える 1

0

必要なのは、アプリごとの vhost (仮想ホスト) です。vhost で、サブディレクトリのいずれかを指す vhosts ルート ディレクトリを定義します。

IP ベースの仮想ホスト (サブドメインごとに 1 つの IP アドレス) または名前ベースの仮想ホスト (最新のすべてのブラウザーが送信する HTTP ホスト ヘッダーに基づいて仮想ホストが選択されます) があります。しかし、仮想ホストについてここにすべてを書くにはあまりにも多くのことを言う必要があります。ここで apache のドキュメントを読んでください:

http://httpd.apache.org/docs/2.2/vhosts/

純粋な .htaccess ファイルでは、それはできないと思います (間違っているかもしれません)。通常、メインの apache 構成に仮想ホストを追加します。ホスティングによっては、これができない場合があります。その場合は、ホスティング プロバイダーに相談してください。

マルク

于 2012-07-25T06:52:02.750 に答える