2012-02-05 4 views
0

다음은 전체 htaccess 파일입니다. 그것은해야한다 (및 관리 폴더를 제외한 모든 것을 잘 작동)htaccess rewriterule, 총 8 개의 RewriteRules, 모두 잘 작동하지만 괜찮습니다.

:

  • WWW를 추가합니다. (관리 폴더가 아닌 그냥 그대로 두십시오.)
  • 입력 된 URL에서 index.php를 숨기고 (관리 폴더가 아닌 그대로 두십시오)
  • http를 https로 바꾸거나 https를 HTTP 입력 한 URL에 따라 아래의 .htaccess 파일, both http:// (and https://) www.mydomain.com/administartion/index.php 404 에러 페이지로 이동,

불행하게도 (그러나 관리 폴더, 관리 폴더는 항상 https를해야하지 때문에). 어떻게 고치는 지?

그래서, #의 블록 0, #의 블록 1, htaccess로 작업 벌금 #의 보간에, 그들은 자신의 작품 또한

, #의 블록 0, #의 BLOCK3 (관리 폴더에 URL을 항상 HTTPS, 404 페이지없이 리디렉션 수 있습니다) 만들 - # block8 자신의 작업을 확인하십시오. (관리 폴더가 아닌 URL의 경우 잘 작동합니다.)

그러나 일단 모든 것을 함께 넣으면 (# block0- # block2 뒤에 # block3 - # block8 추가), http://www.mydomain.com/administartion/index.php이 시작됩니다. 404 페이지로 이동.

수정 이유는 무엇입니까? 감사합니다.

#block0 
RewriteEngine On 

#block1 
#special rules for administration folder, http to https, if http 
RewriteCond %{REQUEST_URI} ^/administration 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] 

#block2 
RewriteCond %{REQUEST_URI} ^/administration 
RewriteRule ^administration - [NC,L] 
#URLs to administration folder should be stopped before this line. 




#block3 
RewriteCond %{HTTP_HOST} !^www.mydomain.com$ 
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] 

#block4 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteRule ^index.php/[L,R=301] 



#block5 
#if its a resource (add others that are missing) 
RewriteCond %{REQUEST_URI} \.(gif|css|png|js|jpe?g)$ [NC] 
#do nothing 
RewriteRule^- [L] 

#block6 
#determine if page is supposed to be http 
RewriteCond %{QUERY_STRING} (^|&)(p=home1?|qqq=home)(&|$) [NC,OR] 
#or if query string is empty 
RewriteCond %{QUERY_STRING} ^$ 
#set env var to 1 
RewriteRule^- [E=IS_HTTP:1] 

#block7 
#all pages that are supposed to be http redirected if https 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{HTTPS} on 
RewriteCond %{ENV:IS_HTTP} 1 
RewriteRule^http://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] 

#block8 
#all other pages are sent to https if not already so 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{HTTPS} off 
RewriteCond %{ENV:IS_HTTP} !1 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301] 

답변

0

변화 [R,L=301]https#block1#block7#block8

또한 설치 인증서에 [R=301,L]해야 당신은 아파치 당신의 .confVirtualHost *:443을해야합니까?

+0

변경했습니다. 고맙습니다. 내 문제를 해결하지 못했지만 문제를 잡았습니다. 다른 .htaccess 파일에있었습니다 (다른 .htaccess 파일을 다른 폴더에서 제거하고 모든 것이 작동 함). 고맙습니다. – Haradzieniec