htaccessコードのみを使用してサブドメインを作成できるかどうか疑問に思っていました(ホスティングコントロールパネルで設定せずに)
「モバイル」という名前のフォルダーがあります。その場所は次のようになります: http://www.domain.com/mobile
http://mobile.domain.comに入力してモバイル フォルダを表示できるようにしたいのですが、htaccess にコードを記述するだけで実現できますか? もしそうなら、どうすればいいですか?
ありがとう
htaccessコードのみを使用してサブドメインを作成できるかどうか疑問に思っていました(ホスティングコントロールパネルで設定せずに)
「モバイル」という名前のフォルダーがあります。その場所は次のようになります: http://www.domain.com/mobile
http://mobile.domain.comに入力してモバイル フォルダを表示できるようにしたいのですが、htaccess にコードを記述するだけで実現できますか? もしそうなら、どうすればいいですか?
ありがとう
*.domain.com
ドメインのすべてのリクエストを処理するように構成されている限り、これを行うことができます。その場合は、mobile.domain.com
の DNS CNAME がwww.domain.com
.
必要なサブドメインがわかっている場合は、次のようにそれらを列挙できます (これらのルールをドキュメント ルートの htaccess ファイルに入れます)。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.) [NC]
RewriteCond %{HTTP_HOST} ^mobile\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mobile/
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -d
RewriteRule ^(.*)$ /mobile/$1 [L]
それ以外の場合、これを任意に実行したい場合は、もう少し複雑になります。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.) [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %1:%{REQUEST_URI} !^([^:]+):/\1/
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d
RewriteRule ^(.*)$ /%1/$1 [L]
ドメインの構成によって異なります。
次のように、ワイルドカードを使用して設定した場合ServerAlias
:
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/example.com/
リクエストはフォルダに.htaccess
到着し、評価され、mod_rewriteを使用できるようになります。ただし、ディレクティブを指定しない場合ServerAlias
、リクエストはフォルダに到達しないため、それを使用して何もできなくなります。