2017-12-14 13 views
0

리디렉션 기존 유지하면서 하위 폴더로 특정 TLD를 리디렉션 브라우저에서 http://exmaple.com를 요청할 때htaccess로 루트 - 투 - 하위 폴더 내가 지금까지 <code>example.com/en-US/</code>에 웹 사이트의 영어 버전과</p> <p><code>example.com/fr-FR/</code>의 프랑스어 버전을 호스팅하는 도메인 <code>example.com</code> 우리가 영어 사용하고있다

Redirect 301 /index.html http://examle.com/en/ 

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

그래서, 서버가 index.html을 그 뜻을 요청합니다 : 기본적으로 버전은, 그래서 우리는 .htaccess 파일에이 규칙을 사용하여 example.com/en-US/example.com을 요청하는 모든 사람을 리디렉션 것 Rediret를 /en-US/ 디렉토리로 트리거하십시오.

이제 우리는 동일한 웹 공간을 가리키는 프랑스어 example.fr TLD를 얻었습니다. 지금 나는 다음과 같은 조건을 추가하는 시도 http://example.fr

http://example.com/fr-FR/에 브라우저 요청을 reirect 할 수있는 방법을 찾고 있지만 URL에 /en-US/의 많은 추가 루프 어떤 종류의 결과. //example.com -> hxxp :

는 제발 도와주세요, 나는

hxxp 리디렉션 할 수있는 방법이 필요 //example.com/en-US/

hxxp를 : // example.fr -> hxxp : //example.com/fr-FR/

및 명시 적으로 hxxp : //example.com/index.html -> hxxp : //example.com/en을 요청하는 모든 사람들 -US/too

답변

0

이 규칙은 condit 이온 기준 HTTP_HOST :

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC] 
RewriteRule ^(?:index\.html)?$ /en-US/ [L,NC,R=301] 

RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.fr$ [NC] 
RewriteRule ^(?:index\.html)?$ /fr-FR/ [L,NC,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule^%{REQUEST_URI}/ [L,R=301,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ 
RewriteRule . %1/%2 [R=301,L,NE] 
+0

@ Konadi : 이것은 효과가 있었습니까? – anubhava