VHost&Forwardサブドメインを作成します


8

の達人

私は単純な.htaccessファイルを持っていますが、私のWebアプリケーションでは、www以外をwwwにリダイレクトするだけです。今私がしたいのは

  1. http://subdomain.mydomain.tldのような新しい仮想ホストを作成します
  2. app / webroot / subdomainのような私のアプリのフォルダに、そのサブドメインに来る人のためのリダイレクトを作成します

私の現在の.htaccessは次のようになります

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC]
    RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]
</IfModule>

どうすればいいですか?これをすべて.htaccessファイルで行うことはできますか、それともGoDaddyをいじる必要がありますか?それが理にかなっている場合、私はむしろアプリでこれをしません。

Ubuntu 10.04 + Apache 2.2.14-5を実行しています

ありがとう

回答:


18

.htaccessファイルに必要なものは次のとおりです。

RewriteEngine on
# redirect mydomain.tld to www.mydomain.tld
RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

# default website
RewriteCond %{HTTP_HOST} ^www\.mydomain\.tld$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [NC,QSA,L]

# subdomain to folder
RewriteCond %{HTTP_HOST} ^(sub|subfolder)\.domain\.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)/?$ http://www.domain.com/%1/$1 [NC,QSA,L]

ありがとう、最初にそのサブドメインの仮想ホストを設定する必要がありますか?

必要に応じて、WWWと同じDocumentRootを持つvhostをいつでも使用できます。www vhostのServerAliasを変更して、ドメインを追加することもできます(例:ServerAlias domain.com www.domain.com sub.domain.com)。

申し訳ありませんが、apache2のn00bです。したがって、2つのこと-1.コードのように([a-z0-9])ではな​​く、固定サブドメインのみを許可したいのですが、^(sub)に変更するだけですか?2.どうすればvhostを再設定できますか(n00bが多すぎますか?ごめんなさい)?

1)更新された回答を表示します。2)サブドメインエントリを作成しましたか?wwwと同じ場所を指し示しましたか?

1)私はそれを見つめていて、まだ1つの変更を見つけることができません。2)その.htaccessファイルには他に何もないが、私が示したもの。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.