web-dev-qa-db-ja.com

.htaccessサブドメインをディレクトリに書き換えます

.htaccessを使用してサブドメインをディレクトリに書き換えることはできますか?

例:

の内容を示します

78
Erik Djupvik

これを.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]
98
Ansari

私はmod_rewriteのエキスパートではありません。よく苦労しますが、自分のサイトの1つでこれを行いました。状況によっては他のフラグなどが必要になる場合があります。私はこれを使用しています:

RewriteEngine on

RewriteCond %{HTTP_Host} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L] 

サイトの他の部分に対する他の書き換えルールは、サブドメインの書き換えを妨げないようにするために、後で実行する必要があります。

48
Lee Kowalkowski

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をサブドメインに置き換え、フォルダーをサブドメインを指すフォルダーの名前に置き換えます。

15
starkeen

私は同じ問題を抱えていて、詳細な説明を 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]
8

同じフォルダーにサブドメインにリダイレクトします:.httaccess

RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} ^([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/subdomains/%1
4
jmsmarcelo

この.htaccessファイルをサブドメインフォルダーに配置してみてください。

RewriteEngine On

RewriteRule ^(.*)?$ ./subdomains/sub/$1

http://domain.com/subdomains/sub/ にリダイレクトします(表示したい場合のみ) http://sub.domain.com/

3
Minh Trịnh

サブドメインディレクトリのリダイレクト:

RewriteCond %{HTTP_Host} ^([^.]+)\.(archive\.example\.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]
2
Mayank Awasthi

サブドメインのリクエストには、これを使用します:

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のように存在する必要があります。

0
Hafij Khan