2017-12-13 18 views
0

내 웹 사이트의 경우 www가없고 확장자가 .php가 아닌 https로 URL을 강제로 지정하고 싶습니다. 내 htaccess로 파일은 다음과 같은 규칙이 포함되어 있는지에 대한 는 :301 리디렉션 수를 줄이는 방법은 무엇입니까?

RewriteEngine On 

#force HTTPS and remove the www 
RewriteCond %{SERVER_PORT} 80 [OR] 
RewriteCond %{HTTP_HOST} ^www\.jvincent\.fr$ [NC] 
RewriteRule ^(.*) https://jvincent.fr/$1 [QSA,L,R=301] 

#To remove the .php extension 
RewriteCond %{REQUEST_URI} !(php-script) [NC] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ (.*)\.php [NC] 
RewriteRule^%1 [R=301,L] 

그것은 잘 작동합니다. 하지만이 URL http://www.jvincent.fr/phpinfo.php를 사용하여 내 웹 사이트에 액세스하는 경우 저는 두 301 리디렉션이 있습니다

  1. http://www.jvincent.fr/phpinfo.php 내가 검색하지만 난을 찾을 수 없습니다 https://jvincent.fr/phpinfo.php
  2. https://jvincent.fr/phpinfo.php

https://jvincent.fr/phpinfo에 로를 모든 경우에 하나의 301 리디렉션 만 최적화하고 사용할 수 있습니다. 나는 그것을 할 수있는 방법이 있습니까? 고유 한 RewriteRule 앞에 모든 조건을 병합 하시겠습니까? 환경 변수 사용 (첫 번째 부분에서 플래그 E)?

도움 주셔서 감사합니다.

답변

0

당신은 사용할 수 있습니다!의

RewriteEngine On 

#force HTTPS and remove the www 
RewriteCond %{SERVER_PORT} 80 [OR] 
RewriteCond %{HTTP_HOST} ^www\.jvincent\.fr$ [NC] 
RewriteRule ^(.*?)(?:\.php)?$ https://jvincent.fr/$1 [NC,QSA,L,R=301] 

#To remove the .php extension 
RewriteCond %{REQUEST_URI} !(php-script) [NC] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ (.*)\.php [NC] 
RewriteRule^%1 [R=301,L] 
+1

큰 감사를 많이 :) –