.htaccessを使用してサブドメインをディレクトリに書き換えることはできますか?
例:
の内容を示します
これを.htaccessファイルに入れてみてください:
RewriteEngine on
RewriteCond %{HTTP_Host} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/subdomains/sub/$1 [L,NC,QSA]
より一般的な規則(sub
だけでなく、任意のサブドメインで機能する)の場合、最後の2行を次のように置き換えます。
RewriteEngine on
RewriteCond %{HTTP_Host} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/subdomains/%1/$1 [L,NC,QSA]
私はmod_rewriteのエキスパートではありません。よく苦労しますが、自分のサイトの1つでこれを行いました。状況によっては他のフラグなどが必要になる場合があります。私はこれを使用しています:
RewriteEngine on
RewriteCond %{HTTP_Host} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
サイトの他の部分に対する他の書き換えルールは、サブドメインの書き換えを妨げないようにするために、後で実行する必要があります。
Htaccessで次のルールを使用して、サブドメインをサブフォルダーに書き換えることができます。
RewriteEngine On
#If the Host is "sub.domain.com"
RewriteCond %{HTTP_Host} ^sub.domain.com$ [NC]
#Then rewrite any request to /folder
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
行ごとの説明:
RewriteEngine on
上記の行は、URLを書き換えるためにエンジンをオンにするようサーバーに指示します。
RewriteCond %{HTTP_Host} ^sub.domain.com$ [NC]
この行は、正規表現パターンを使用してhttpホストと照合するRewriteRuleの条件です。条件は、ホストがsub.domain.comである場合、ルールを実行することを示しています。
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
ルールは http://sub.domain.com/foo に一致し、内部的に http://sub.domain.com/folder/foo にリダイレクトします。
Sub.domain.comをサブドメインに置き換え、フォルダーをサブドメインを指すフォルダーの名前に置き換えます。
私は同じ問題を抱えていて、詳細な説明を http://www.webmasterworld.com/Apache/3163397.htm で見つけました
私の解決策(サブドメインの内容はsd_subdomain
というフォルダーにあります:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} subdomain\.domain\.com
RewriteCond $1 !^sd_
RewriteRule (.*) /sd_subdomain/$1 [L]
同じフォルダーにサブドメインにリダイレクトします:.httaccess
RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} ^([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/subdomains/%1
この.htaccessファイルをサブドメインフォルダーに配置してみてください。
RewriteEngine On
RewriteRule ^(.*)?$ ./subdomains/sub/$1
http://domain.com/subdomains/sub/ にリダイレクトします(表示したい場合のみ) http://sub.domain.com/
サブドメインディレクトリのリダイレクト:
RewriteCond %{HTTP_Host} ^([^.]+)\.(archive\.example\.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]
サブドメインのリクエストには、これを使用します:
RewriteEngine on
RewriteCond %{HTTP_Host} !^www\.band\.s\.co
RewriteCond %{HTTP_Host} ^(.*)\.band\.s\.co
RewriteCond %{REQUEST_URI} !^/([a-zA-Z0-9-z\-]+)
RewriteRule ^(.*)$ /%1/$1 [L]
必要なサブドメイン名と同じフォルダーを作成するだけです。フォルダーはdomain.com/sub for sub.domain.comのように存在する必要があります。