2017-11-21 1 views
1

예 : 서버가 있습니다. 두 개의 URL이 가리키는가 123.123.123.123 .htaccess 여러 하위 도메인에 대한 재 작성

www.mysite.com과 api.mysite.com

내가 그것을 같은 www.mysite.com이 123.123.123.123/로 리디렉션됩니다 있는지 확인 어떻게 앞면 api.mysite.com은 123.123.123.123/api로 리디렉션됩니까?

(www.mysite.com) 주소 표시 줄에 www.mysite.com/front를 표시하면 안됩니다.

미리 감사드립니다.

+0

왜 가상 호스트를 사용하지 않습니까? –

답변

1

사이트 루트의 .htaccess에이 두 규칙을 사용할 수 있습니다 그 뜻은 REQUEST_URI/front/

+1

예 @anubhava 그것이 의미하는 바입니다. –

+0

@anubhava 미안하지만, .htaccess에서 프로가 아니므로, 저는 이것을 아주 잘 이해하지 못합니다. 여전히 배우려고 노력하고, 당신이 친절하게 나를 의심 할 여지가 있다면 그것을 고맙게 여길 것입니다 : RewriteCond가 바로 조건입니까? 그래서'RewriteCond % {HTTP_HOST}^api ₩ .example ₩ .com $ [NC]는 api.example.com을 충족시키지 않은 경우를 의미합니다. 'RewriteRule!^api/api % {REQUEST_URI} [L, NC]'을 실행합니다. uri가 api.example.com/api/가 아닌 경우 api.example.com을 실행하면됩니다. 미리 감사드립니다. – phantomhive

+0

당신은 그것을 올바르게 해석했습니다. '^ (www \.)? '는 답안의 두 조건을 결합합니다. 'RewriteCond % {HTTP_HOST}^api \ .example \ .com $ [NC]'요청시 호스트 이름이'api.example.com' 인'RewriteRule'을 실행하는 것을 의미합니다. 'RewriteRule!^api/api % {REQUEST_URI} [L, NC]'는 REQUEST_URI가'/ api /'로 시작하지 않는다는 규칙을 실행하는 것을 의미합니다. 'api % {REQUEST_URI} '는 현재 URI를/api 경로에 추가하는 것을 의미합니다. – anubhava

0

다음과 같이 질문의 부분적인 해결책이 될 수있다 :

RewriteEngine On 

# route www.example.com and example.com 
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule !^front/ Front%{REQUEST_URI} [L,NC] 

# route api.example.com 
RewriteCond %{HTTP_HOST} ^api\.example\.com$ [NC] 
RewriteRule !^api/ api%{REQUEST_URI} [L,NC] 

RewriteRule !^front/

부정적인 조건을 사용하여 패턴과 일치한다 :

RewriteCond %{HTTP_HOST} ^example.com$ 
    RewriteRule ^$ http://example.com/Front/index.php 
+0

OP가 URL에 하위 폴더 경로를 표시하지 않으므로이 작업을 수행 할 수 있습니까? – Kallmanation

+0

나는 그것이 작동하지 않는다는 것을 –

+0

yea 그것이 일할 것이라는 점을 생각한다. 가장 가까운 것은 RewriteRule^(. *) $ front/$ 1 [L]이었는데 www.mysite.com을 하위 폴더 경로를 표시하지 않고 123.123.123.123/front로 리디렉션했지만 api.mysite.com은 깨질 것입니다. 123.123.123.123/front/api/ – phantomhive

0

으로 시작하지 않으면이 규칙을 실행하는 것을 의미합니다. htaccess에서는별로 좋지 않지만 마나 당신이 가상 호스트를 사용하지 않는 이유는 무엇입니까?

RewriteCond %{HTTP_HOST} www.mysite.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^mysite.com [NC] 
RewriteRule ^(.*)$ front/$1 [L] 
+0

2 개의 별도 조건이 필요하지 않습니다. 위의 내 대답을 참조하십시오. – anubhava

+0

참으로 나는 그것이 매우 유사하다는 것을 깨달았습니다.'^ (www \.)? '는 두 조건을 결합합니다. 두 번째 줄이 어떻게 작동하는지 모르겠습니다. 아래에 논평 할 것이다. – phantomhive

관련 문제