2010-08-16 5 views
0

mod_rewrite에 대해 질문하는 것이 싫지만이 규칙이 제대로 작동하지 않는 것 같습니다. 나는 한 번 설정하고 한 번 전에 알아 냈지만, 몇 년이 지났고 지금은 그냥 놀지 않고 내 mod_rewrite 지식이 다시 uhhhh로 돌아왔다 ...... ......동적 하위 도메인과 htaccess를 통해 정의 된 하위 도메인

기본적으로 내가하고 싶은 것은 강제로 www 주 도메인 인 example.com에 있습니다. (또는 어떤 www도 더 좋지는 않지만 강제로 동적 인 하위 도메인과 함께 제대로 작동시킬 수는 없었다). 규칙, 그에 따라

다른 것, 예를 들어 그들을 따라 존재 my.example.com을 경우

: * .example.com을, 구문 분석하는 또 다른 파일에 전달합니다.

저는 현재 www를 강제로 처리하고 있으며 동적 하위 도메인을 제대로 처리하지만 my.example.com 규칙을 완전히 무시하고 와일드 카드 하위 도메인으로 처리합니다. 내 규칙 중 하나라도 올바르게 작동하게 할 수있는 것 같지만, 함께 작동 시키려고 할 때 그저 나쁜 놈이 될뿐입니다. 누구든지 이것이 정상적으로 작동하도록해야만한다는 것을 안다면 슈퍼 감사하겠습니다.

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

# force www on main, force no www would be better. 
RewriteCond %{HTTP_HOST} !^(.*)\.example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

# my.example.com defined subdomain 
RewriteCond %{HTTP_HOST} !^my\.example\.com$ [NC] 
RewriteRule ^.*$ - [S=3] 
RewriteRule ^$ /mydirectory/index.php [L] 
RewriteRule ^category/([^/]+)/?$ /mydirectory/index.php?category=$1 [L] 
RewriteRule ^submit/?$ /mydirectory/process.php [L] 

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

흠 ... 내 테스트 서버에서 제대로 작동하는 것 같습니다. 'my'는 실제로'my'입니까, 아니면 다른 것입니까? –

답변

2

이 규칙을 시도해보십시오

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

# my.example.com defined subdomain 
RewriteCond %{HTTP_HOST} !^my\.example\.com$ [NC] 
RewriteRule ^.*$ - [S=3] 
RewriteRule ^$ /mydirectory/index.php [L] 
RewriteRule ^category/([^/]+)/?$ /mydirectory/index.php?category=$1 [L] 
RewriteRule ^submit/?$ /mydirectory/process.php [L] 

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

첫 번째 규칙은 지금 example.com에 + www.example.com * 리디렉션합니다. 그리고 세 번째 규칙은 존재하지 않는 호스트에 대한 요청을 잡습니다.

+1

완벽하게 작동하는 것 같습니다. 팀의 의견을 듣고 다시 캐시를 지우고 원래 규칙이 작동하기 시작 했으므로 평소와 같이 대부분 사용자 부분의 실수 였지만 www가 작동하지 않아서 기쁩니다. Gumbo! – Jervis

관련 문제