.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]
http://test.domain.com/subdomains/test/
난 단지 그것을 표시 할 때,http://test.domain.com/
test.domain.com/subdomains/test
-아마도 여기에 다른 일이있을 수 있습니다. RewriteBase /
바로 추가 할 수 있습니까 RewriteEngine on
? 또한 계속 표시 test.domain.com
하려면 mod_proxy와 [P]
플래그 를 사용해야합니다 .
나는 mod_rewrite 전문가가 아니며 종종 어려움을 겪지 만 내 사이트 중 하나에서 이것을 수행했으며 상황에 따라 다른 플래그 등이 필요할 수 있습니다. 나는 이것을 사용하고있다 :
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
나머지 사이트에 대한 다른 재 작성 규칙은 나중에 적용하여 하위 도메인 재 작성을 방해하지 않도록해야합니다.
.htaccess
가이 페이지를 방문하는 경우 (예 : 내가 한 것처럼) 실제 .htaccess
파일을 만드는 것 외에 효과를 얻으려면 설정 AllowOverride
에서 VirtualHost
설정 해야합니다 ( stackoverflow.com/a/22819550/1657502 ). 아파치의 수 rewrite
모듈을 다음 아파치 (다시 시작 stackoverflow.com/a/5758551/1657502 )
www.
접두사는 재 작성보다 리디렉션을 통해 가장 잘 지원됩니다.
.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]
이렇게하면 동일한 폴더로 하위 도메인으로 리디렉션됩니다.
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]
모든 하위 도메인 요청에 대해 다음을 사용하십시오.
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 에 대한 sub.domain.com .
http://test.domain.com
하면 URL 이로 리디렉션됩니다http://test.domain.com/subdomains/test/
./subdomains/test/
끝에 표시하지 않고 가능 합니까?