[apache] .htaccess 하위 도메인을 디렉토리에 다시 작성

.htaccess를 사용하여 하위 도메인을 디렉토리에 다시 쓸 수 있습니까?

예:

내용을 보여줍니다



답변

.htaccess 파일에 넣으십시오.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]

보다 일반적인 규칙 (뿐만 아니라 모든 하위 도메인에서 작동 함 sub)의 경우 마지막 두 줄을 다음으로 바꿉니다.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ subdomains/%1/$1 [L,NC,QSA]


답변

나는 mod_rewrite 전문가가 아니며 종종 어려움을 겪지 만 내 사이트 중 하나에서 이것을 수행했으며 상황에 따라 다른 플래그 등이 필요할 수 있습니다. 나는 이것을 사용하고있다 :

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://sub.domain.com/ 만 표시하려는 경우 http://domain.com/subdomains/sub/로 리디렉션됩니다 .


답변

하위 도메인 디렉토리 리디렉션 :

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