2014-12-08 5 views
1

모든 URL을 http에서 https으로 리디렉션하고 싶습니다.하나의 동적 URL을 제외하고 .htaccess를 사용하여 모든 URL 리디렉션

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

이 지금은이 규칙에 한 가지 예외를 추가하려면, 즉 때마다 사용자 요청이 힘 https 리디렉션을 적용해서는 안 (마지막 문자열을 동적으로 생성된다) 다음과 같은 동적 URL입니다.

sub.domian.dev/api/v/1/download/zip/token/8397298347ksjdnkjasdn0394834 

나는이 규칙을 시도했지만 효과가 없습니다.

#url to exclude 
RewriteCond %{REQUEST_URI} !^/api/v/1$ 

누군가가 나에게 어떻게 할 지에 대한 포인터를 줄 수 있습니까?

감사합니다.

당신이 코드를 사용할 수 있습니다

답변

1

:

RewriteEngine On 

# except /api/v/1/ requests redirect everything else to https 
RewriteCond %{THE_REQUEST} !\s/+api/v/1/ [NC] 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule^index.php [L] 
+0

덕분에, 내가 원하지 않는'/ API/V/1 /'힘 HTTP를 할 수있는 사용자 이 URL에 대해 'http' 또는'https'를 사용하여 액세스 할 수 있어야합니다. –

+0

괜찮습니다. 코드에서 추가 규칙을 제거했습니다. – anubhava

+1

감사합니다. 완벽하게 작동합니다. –

1

당신은 사용할 수 있습니다

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/api/v/1/ 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
관련 문제