web-dev-qa-db-ja.com

Apacheリダイレクトフォルダをサブドメインに

クライアントはwww.domain.com/dirにアプリケーションを持っていました。これで、dir.domain.comにサブドメインが設定されました。サブドメインは、www.domain.com/dirに保存されているファイルを参照します。彼らは今、www.domain.com/dirにアクセスしている人々がdir.domain.comにリダイレクトされることを望んでいます。

Www.domain.com/dirに配置するには.htaccessが必要だと思います。wwwを介してアクセスする場合は、構文がわからないので、サブドメインにリダイレクトしてください。

6
Thody

.htacessに属するディレクトリにwww.domain.com/dirを追加します。

RewriteEngine on
RewriteCond ${HTTP_Host} ^www\.domain\.com$
RewriteRule ^(.*) http://dir.domain.com/$1 [R,L]

1行目はmod_rewriteを有効にし、2行目は現在のリクエストがホスト名www.domain.comを使用してリソースにアクセスしていることを確認し、3行目はそのようなすべてのリクエストを目的のターゲットホスト名にリダイレクトします。

5
earl

単純にどうですか:

Redirect /dir http://dir.domain.com
4
mdpc

/ dirディレクトリの.htaccessファイルでこのルールを試してください。

RewriteCond %{HTTP_Host} !=dir.example.com
RewriteRule .* http://dir.example.com/$0 [L,R=301]

または、ルートディレクトリの次のルール:

RewriteCond %{HTTP_Host} !=dir.example.com
RewriteRule ^dir(/(.*))?$ http://dir.example.com/$2 [L,R=301]
0
Gumbo

djhowellはもうすぐそこにいました:

RewriteEngine on
RewriteCond %{HTTP_Host} ^(www\.)?domain\.com$
RewriteRule ^/dir(/.*)?$ http://dir.domain.com$1 [R=301,L]

RewriteRuleの先頭にスラッシュが必要です。そうしないと、何も一致しません。 (/.*)?$ビットは、0または1のスラッシュ、次にすべてのチャンクに一致し、URIの終わりに一致することを意味します。 (これは重要です。これがないと、www.domain.com/dirsomethingelseにも一致します)。

  • www.domain.com/dir -> dir.domain.com
  • www.domain.com/dir/ -> dir.domain.com/
  • www.domain.com/dir/blah.html -> dir.domain.com/blah.html
0
markdrayton