it-swarm-ko.tech

.htaccess를 통해 http를 https로

나는 기존의 질문을 살펴 보았지만 실제로 나에게 맞는 것을 발견하지 못했습니다.

현재 보안 SSL 인증서가있는 사이트를 운영하고 있습니다. https://www.example.co.uk 에서 액세스 할 수 있습니다. 문제는 http://www.example.co.uk =-나는 이것을 원하지 않습니다. http에서 https로 리디렉션하려면 필요합니다.

.htaccess 파일에서 사용할이 코드 조각을 발견했습니다.

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_Host} ^example.co.uk [NC] 
RewriteRule ^(.*)$ https://example.co.uk/$1 [L,R=301]

사용자가 주소 표시 줄에 example.co.uk를 입력하면 정상적으로 작동하지만 사용자가 'www.example.co.uk'또는 ' http://www.example.co.uk '.

[OR]와 같은 것을 사용하려고 시도했지만 서버 오류가 발생합니다.

도움과 제안에 감사드립니다.

건배.

61
fitzilla

다음을 시도하십시오 :

 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

또한 포트 번호를 기반으로 리디렉션 할 수도 있습니다 (예 :

 RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

포트 80에서 수신 된 모든 요청을 HTTPS로 리디렉션합니다.

156
BluesRockAddict

.htaccess 파일에 다음 코드를 추가하십시오.

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

웹 사이트 도메인으로 example.com 변경

URL 리디렉션 튜토리얼은 여기에서 찾을 수 있습니다- . htaccess 파일을 사용하여 www가 아닌 ​​www를 www로, HTTP를 HTTPS로 리디렉션

13
JoyGuru

사용해보십시오, 나는 그것을 사용하고 잘 작동합니다

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
5
Ali Aboussebaba

이 시도:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]

출처 : https://www.ndchost.com/wiki/Apache/redirect-http-to-https

(나는 너무 많은 다른 코드 블록을 시도했지만이 3 라이너는 완벽하게 작동했습니다)

3
afriend

위의 코드를 모두 시도했지만 웹 사이트에서 코드가 작동하지 않습니다.이 코드를 시도하면이 코드가 내 웹 사이트에 완벽하게 실행됩니다. htaccess에서 다음 규칙을 사용할 수 있습니다.

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

//Redirect http to https
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_Host} ^(www\.)?example\.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

//Redirect non-www to www
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

</IfModule>

도메인 이름으로 example.com을 변경하고 영어가 좋지 않은 것에 대해 죄송합니다.

3
Dinesh Gurjar

HTTP를 HTTPS로 리디렉션하고 각 URL에 www를 추가하려면 아래 htaccess를 사용하십시오.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_Host}/$1 [R=301,L] 

먼저 HTTP를 HTTPS로 리디렉션 한 다음 www로 리디렉션합니다.

1
Mady Joshi
# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine Off

SetEnv DEFAULT_PHP_VERSION 7

DirectoryIndex index.cgi index.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# RewriteCond %{HTTP_Host} ^compasscommunity.co.uk\.com$ [NC]
# RewriteRule ^(.*)$ https://www.compasscommunity.co.uk/$1 [L,R=301]
1
Compass

완벽한 코드 HTML 인덱스로 이동 :

RewriteEngine on
RewriteCond %{HTTP_Host} ^YourNameWebsite\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.YourNameWebsite\.com$
RewriteRule ^/?$ "https\:\/\/YourNameWebsite\.com\/index\.html" [R=301,L]

또는

완벽한 코드 PHP index :

RewriteEngine on
RewriteCond %{HTTP_Host} ^YourNameWebsite\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.YourNameWebsite\.com$
RewriteRule ^/?$ "https\:\/\/YourNameWebsite\.com\/index\.php" [R=301,L]
1
Allysha

간단한 방법으로 http://example.com또는http://www.example.comtohttps://www.example.com를 리디렉션하려면 htaccess에서 다음 규칙을 사용할 수 있습니다.

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteCond www.%{HTTP_Host} ^(?:www\.)?(www\..+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]

[테스트 된]

% {REQUEST_SCHEME} 변수는 Apache 2.4부터 사용할 수 있으며이 변수에는 요청 된 체계 (http 또는 https) 값이 포함되어 있으며 Apache 2.4에서는 다음 규칙을 사용할 수 있습니다.

RewriteEngine on


RewriteCond %{REQUEST_SCHEME} ^http$
RewriteCond %{HTTP_Host} ^(www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%{HTTP_Host}%{REQUEST_URI} [NE,L,R]
1
starkeen

모든 트래픽이 https을 (를) 넘길 수있는 더 좋고 안전한 방법이 있습니다. 예를 들어 두 개의 가상 호스트를 설정하고 모든 트래픽을 http에서 https 호스트로 리디렉션합니다. 이 답변은 security.stackexchange.com 에서 자세히 읽어보십시오.

리디렉션을 위해 가상 호스트를 설정하면 301 상태 (영구적으로 리디렉션)를 보낼 수 있으므로 브라우저는 다음 요청이 모두 리디렉션 된 https 서버로 전송되어야 함을 이해합니다. 따라서 첫 번째 리디렉션 응답 후에는 더 이상의 http 요청이 수행되지 않습니다.

잘못된 다시 쓰기 규칙을 설정하면 들어오는 요청에서 쿼리 매개 변수가 느슨해 질 수 있으므로 주어진 답변을 신중하게 확인해야합니다.

1
Wilt

이것이 검색의 최고 결과 중 하나이므로 AWS Beanstalk의 https 리디렉션에 http를 추가하려고하면 허용 된 솔루션이 작동하지 않습니다. 대신 다음 코드가 필요합니다.

RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^.*$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
1
Ignas2526

이것을 시도하십시오 RewriteCond %{HTTP_Host} !^www. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]

1
krypto99

나를 위해이 변형 만 작동합니다.

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

감사합니다 https://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-dobavit-redirekt/redirekt-s-http-na-https (러시아어) )

1
Sllouyssgort

이것을 제외하고는 이것들 중 어느 것도 나를 위해 일하지 않았습니다. 내 사이트가 https://www.asmallorange.com 에 호스팅되었습니다

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}/$1 [R=301,L]
0
Bee