2011-01-31 5 views
1

Apache와 .htaccess 파일을 사용하여 일부 리디렉션을 설정합니다. 301 도메인에있는 모든 항목을 하위 도메인 (도메인 색인의 경우 제외)으로 리디렉션 할 수 있습니까?.htaccess Redirects

그래서 http://sub.domain.com/*

http://domain.com/* 리디렉션하지만이 http://domain.com/을 떠나?

아무도 도와 줄 수 있다면 미리 감사드립니다!

답변

1

단일 재 작성 규칙은 : 그것은 가장 간결한 방법으로 일을해야처럼

# Rewrite if on main domain AND NOT requesting index 
RewriteCond %{HTTP_HOST} ^domain[.]com$ [NC] 
RewriteCond %{REQUEST_URI} !^(/(index[.](html|php))?)?$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://sub.%1$1 [R=301,QSA,L] 
+0

이 보인다 - 나는 새로운 domain.com 페이지가 구축되면 테스트하고 알려드립니다. 감사! – mrappleton

+0

나는 마침내 이것을 필요로하고 주위를 테스트 해 보았습니다. 그것은 내가 필요로하는 것 가까이에있는 것 같다지만, 또한 메인 (리디렉션되지 않은) 페이지에 대한 CSS와 자바 스크립트 요청을 재작 성합니다. * .css 및 * .js를 리디렉션에서 제외 할 수 있습니까? – mrappleton

+0

@mrappleton - 위의 재 작성에 몇 가지 조건을 추가했습니다. 파일이 존재하면 다시 쓰지 않습니다 ... – HorusKol

0
# Check for non-empty request URI 
RewriteCond %{REQUEST_URI} (.+) 
RewriteRule .* http://sub.domain.com%1 [L,R=301] 
0

기본 도메인에서 기본 HTML 또는 PHP를 허용하고 싶을 것입니다. 이 경우, 다음 룰 쌍이 작동해야합니다. 테스트하고 확인하십시오.

# Skip the rewrite for the root of domain.com 
RewriteCond %{HTTP_HOST} ^domain[.]com$ [NC] 
RewriteCond %{REQUEST_URI} ^(/(index[.](html|php))?)?$ 
RewriteRule ^(.*)$ - [L] 

# Rewrite everything else 
RewriteCond %{HTTP_HOST} ^(domain[.]com)$ [NC] 
RewriteRule ^(.*)$ http://sub.%1$1 [R=301,QSA,L]