SSL .htaccess-단순 Q
나는이 파일을 정말로 싫어한다… 나는 이것을 알아 내려고 6.5 시간을 보냈다. 그리고 나의 ADHD 난독증으로 그것은 단지 불가능하다 !! SSL 용으로 구입 한 도메인이 있습니다 (현재 WWW가 시작될 때까지 SSL을 기다려야하지만 지금은 WWW가없는 도메인이 작동합니다. 예 :
https://tomas.com
루트에있는 .htaccess는 현재 다음과 같습니다.
RewriteEngine On
RewriteCond %{HTTP_HOST} tomas\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://tomas.com/$1 [R,L]
그리고 위의 코드는 실제로 좋은 SSL을 활성화합니다. 문제는 루트 도메인에 몇 개의 파일이 있지만 그중 하나는 다음과 같습니다.
hello.php
(위치 : "tomas.com/hello.php")
내가 가면 : http://tomas.com/hello해당 파일을 표시하고 싶습니다 (주소 표시 줄에 "http://tomas.com/hello"라고 표시되어야 함). SSL 이전에는이 코드가 아래에 있었고 작동했습니다 (더 이상은 아님).
RewriteRule ^([^/]*)/?(.*)$ $1.php
전체 .htaccess가 어떻게 생겼는지 아십니까? : /
나는 또한 www를 사용하지 않도록 강제하려고 노력하고 있습니다 (그러면 그들이 그렇게한다면 WWW가 아닌 URL로 리디렉션되어야 함) 미리 감사드립니다 !!!!!!!!!!!!
답변
SSL 이전에는이 코드가 아래에 있었고 작동했습니다 (더 이상은 아님).
RewriteRule ^([^/]*)/?(.*)$ $1.php
이전에 이것이 어떻게 "작동했는지"확실하지 않지만 자체적으로 완료되지 않고 단순히 .php
확장을 추가하는 것 이상의 작업을 수행 합니다. hello.php
패턴과도 일치 하므로 다시 쓰기 루프를 방지하기 위해 무언가가 필요합니다 ^([^/]*)/?(.*)$
.
HTTP에서 HTTPS로 리디렉션 한 후 대신 다음을 시도 하세요.
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]
.php
내부적으로 다시 쓰기 전에 먼저 파일 확장자 를 가진 파일이 존재하는지 확인합니다.
또는 다른 URL 재 작성을 수행하지 않는 경우 대신 MultiView를 활성화 할 수 있습니다. 예를 들어, 파일 상단에서 :
Options +MultiViews
이것은 mod_negotiation을 사용하여 기본적으로 모든 것에 대해 확장없는 URL을 활성화합니다 !