2011-10-03 2 views
2

모든 호출을 추가 변수가있는 하위 도메인의 파일로 리디렉션하고 싶습니다. 사용자가 www.domain.com/news.php에 액세스하고 하위 도메인에서 동일한 페이지에 액세스하는 경우 news.php?subdomain=xyz과 같이 xyz.domain.com/news.php을 다시 작성해야하므로 URL에 추가 인수를 추가해야합니다. 또한 난 그냥 간단한 도메인에 대한 다른 규칙이 있습니다.동적 하위 도메인에 대한 다시 쓰기 규칙으로 하위 도메인 인수로 각 파일을 리디렉션

RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ 
RewriteRule ^$ /index.php?subdomain=%1 [L] 
+0

사용자가 www.domain.com/news.php에 액세스 한 후 xyz.domain.com/news.php를 다시 작성해야하지만 첫 번째 항목을 탐색하지 않은 경우 다시 작성하지 마십시오. – undone

+0

아니요. 하위 도메인 xxx.domain.com/file.php를 통해 액세스하는 모든 파일은 domain.com/file.php?var=xxx에 다시 작성해야합니까? 마찬가지로 xxx.domain.com/file2.php와 같은 file2.php도 domain.com/file2.php?var=xxx이어야합니다. – HardCode

답변

1
RewriteCond %{HTTP_HOST} ^domain\.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC,L] 


RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC] 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI}?subdomain=%1 [L] 


RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC] 
RewriteCond %{QUERY_STRING} !^$ 
RewriteRule ^(.*)$ http://www.domain.com%{REQUEST_URI}?%{QUERY_STRING}&subdomain=%1 [L] 
+0

영구적 인 리디렉션이 필요하지 않습니다. 브라우저의 URL은 xyz.domain.com/file.php와 비슷합니다. 실제로 HTACCESS 파일은 domain.com/file.php?subdomain=xyz와 같은 파일을 호출해야합니다. – HardCode

+0

@HardCode 아시다시피, rerwite 모드에서 호스트를 변경하는 방법 !!! – undone

+0

파일에 대한 호출이 www.domain.com/file.php와 같은 주요 사이트에서 왔을 때 똑같아 야하지만 xyz.domain.com/file.php와 같은 하위 도메인 호출의 경우 다시 작성해야합니다. 이것은 모든 하위 도메인 파일 호출에 대해 domain.com/file.php?subdomain=xyz와 유사해야합니다. acutally 나는 각 하위 도메인에 대한 변수 값을 가진 하위 도메인 설정을 가져 오기를 원합니다. 모든 통화에 대해 브라우저 주소는 실제 리디렉션이 아닌 사용자가 작성한 것과 동일합니다. – HardCode

관련 문제