다음은 전체 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]
변경했습니다. 고맙습니다. 내 문제를 해결하지 못했지만 문제를 잡았습니다. 다른 .htaccess 파일에있었습니다 (다른 .htaccess 파일을 다른 폴더에서 제거하고 모든 것이 작동 함). 고맙습니다. – Haradzieniec