2011-10-09 2 views
0

먼저, 여기에 내가 현재 사용 htaccess로 규칙입니다 :.Httaccess 규칙을 사용하여 HTTP 링크를 HTTP 및 HTTPS로 HTTPS로 리디렉션 하시겠습니까?

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://example.com/$1 [R=301,L] 

이 중대하다, 새로운 도메인의 매우 각각의 링크에 내 이전 도메인의 모든 링크를 리디렉션합니다. 즉, http://olddomain.com/1.htmlhttp://example.com/1.html 등으로 리디렉션됩니다.

그러나 리디렉션하지 않습니다 https://olddomain.com/1.html

https://example.com/1.html에 그리고 당신이 아래 나는 또한 테스트에 무슨 일이 있었 규칙은, 내가 노력 알 수 있도록. 불행히도 그들은 일종의 루프를 만들고 있으며 리디렉션은 작동하지 않습니다.

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) example.com/$1 [R=301,L] 

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{SERVER_PORT} ^443$ [OR] 
RewriteCond %{HTTPS} =on 
RewriteRule (.*) example.com/$1 [R=301,L] 

그래서, 누군가가 HTTPS에 HTTP 및 HTTPS 페이지로 HTTP 페이지를 리디렉션 나에게 규칙을 줄 수 있습니까? 감사.

+0

하나, 난 정말이 필요합니다! –

답변

0
#if https on 
RewriteCond %{HTTPS} on 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 
#else 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 
+0

불행히도 500 개의 내부 서버 오류가 반환되었습니다. 리디렉션이 작동하지 않았습니다. –

+0

olddomain.com과 example.com이 동일한 서버에 있고 동일한 SSL 인증서를 공유하기 때문일 수 있습니다. –

+0

죄송합니다. 쉼표 뒤의 공백은 없어야합니다. 그들이 어떻게 거기에 왔는지 몰라. 게시물을 수정하여 수정했습니다. 작동하는지 여부를 알려주세요. – Gerben

0

HTTPS 다시 쓰기가 잘못되었습니다. Cond는 품질 테스트가 아닌 정규식입니다. 그것은

RewriteCond %{HTTPS} !^on 

%{HTTPS} var에 오직 on 또는 off을 포함해야한다. 절대 =on이므로 일치가 실패하고 https가 실제로 켜져 있어도 리디렉션이 시작됩니다. HTTP-> HTTPS 무조건 들어


갱신

당신이 HTTPS URL로 리디렉션해야 할 것 리디렉션합니다. 귀하의 버전은 HTTPS가 * OFF이면 감지 한 다음 동일한 URL로 리디렉션하여 루프를 발생시킵니다. 당신은 무엇이 필요하다 :

RewriteCond %{HTTPS} !^on 
RewriteRule (.*) https://example.com/$1 [R=301,L] 
+0

마크, 그 중 하나가 작동하지 않았다. 전체 규칙으로 답을 수정할 수 있습니까? (아마도 나는 뭔가를 놓치고 있습니다.) –

+0

좋아, 아마도 나는 명확하지 않을 수 있습니다. 나는'HTTP : // olddomain.com/1.html'에서 온 사람들이'HTTP : // newdomain.com/1.html'로 리디렉션되기를 원했고'HTTPS://olddomain.com/ 1.html'은'HTTPS : // newdomain.com/1.html'로 리디렉션됩니다. 즉, HTTP 연결에서 온 경우 HTTP 새 도메인으로 리디렉션됩니다. HTTPS 연결에서 온 경우 HTTPS 새 도메인으로 리디렉션됩니다. 나는 htaccess 규칙을 원한다. 도울 수 있니? –

관련 문제