2014-03-31 4 views
0

Codeigniter에 대한 대부분의 솔루션을 SSL로 시도했지만 그 중 아무 것도 작동하지 않았습니다.SSL을 사용하는 Codeigniter가 작동하지 않습니다.

내가 필요로하는 것은 SSL 하에서 실행되는 전체 웹 사이트이며, 양식이 많이 있고 관리 섹션과 같은 데이터베이스의 데이터를 표시하는 웹 사이트이기 때문에 사용되는 유일한 리소스는 CSS, js 및 일부 이미지입니다. 그밖에.

이것은 내 config.php 파일에 있습니다. 이것은 부분적으로 작동/htaccess로

Options -Indexes 
Options +FollowSymLinks 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    #Removes access to the system folder by users. 
    #Additionally this will allow you to create a System.php controller, 

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

    #When your application folder isn't in the system folder 

    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

$config['base_url'] = 'https://admin.example.ie/'; 

홈페이지 htaccess로

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

order deny,allow 
deny from all 
allow from 86.XXX.XXX.XXX 

응용 프로그램입니다.

홈페이지에 액세스 할 때 이것은 var_dump ($ _ SERVER)입니다.

["FCGI_ROLE"]=> string(9) "RESPONDER" 
["HTTPS"]=> string(2) "on" 
["SSL_TLS_SNI"]=> string(28) "admin.example.ie" 
["HTTP_HOST"]=> string(28) "admin.example.ie" 
["HTTP_USER_AGENT"]=> string(72) "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) 
["HTTP_CONNECTION"]=> string(5) "close" 
["SERVER_SIGNATURE"]=> string(74) " Apache Server at admin.example.ie Port 443" 
["SERVER_SOFTWARE"]=> string(6) "Apache" 
["SERVER_NAME"]=> string(28) "admin.example.ie" 
["SERVER_ADDR"]=> string(15) "XXX.XXX.XXX.XXX" 
["SERVER_PORT"]=> string(3) "443" 
["REMOTE_ADDR"]=> string(11) "86.XXX.XXX.XXX" 
["REMOTE_PORT"]=> string(5) "58332" 
["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" 
["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" 
["REQUEST_METHOD"]=> string(3) "GET" 

SSL이 여기에서 작동하는 것을 볼 수 있습니다. 그러나 로그인 및 암호 (홈페이지는 로그인 페이지 임)를 기록한 사용자의 홈 페이지로 이동하면 보안 연결이 끊어집니다.

["FCGI_ROLE"]=> string(9) "RESPONDER" 
["REDIRECT_STATUS"]=> string(3) "200" 
["HTTP_HOST"]=> string(28) "admin.example.ie" 
["HTTP_USER_AGENT"]=> string(72) "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0" 
["HTTP_CONNECTION"]=> string(5) "close" 
["SERVER_SIGNATURE"]=> string(73) "Apache Server at admin.example.ie Port 80" 
["SERVER_SOFTWARE"]=> string(6) "Apache" 
["SERVER_NAME"]=> string(28) "admin.example.ie" 
["SERVER_ADDR"]=> string(15) "217.XXX.XXX.XXX" 
["SERVER_PORT"]=> string(2) "80" 
["REMOTE_ADDR"]=> string(11) "86.XXX.XXX.XXX" 
["REMOTE_PORT"]=> string(5) "58392" 
["REDIRECT_URL"]=> string(15) "/employee/home" 
["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" 
["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" 
["REQUEST_METHOD"]=> string(3) "GET" 
["REQUEST_URI"]=> string(15) "/employee/home" 

왜 그런지에 대한 아이디어. 이 보안 위반으로이 프로젝트를 고객에게 양도 할 수 있습니다.

답변

1
RewriteEngine On 
RewriteCond  %{HTTPS} !=on  
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

다른 규칙보다 먼저 htaccess의 맨 위에 추가해보세요.

는 또한 RewriteEngine On

, 어떻게 구축하는 URL을 중복하여 응용 프로그램에서 작업을 형성하지 마십시오? <a href=http://page> 대신 <a href=/secure_page>을 사용합니다.

+0

안녕하세요, 부분적으로 작동했습니다. 직원 컨트롤러에서 home 메소드는 처음에는 var_dump ($ _ SERVER)를 가지고 있고, 마지막에는 기본 뷰를로드합니다. var_dump가 SSL을 사용하고 있음을 보여 줬지만 잠시 후 화면에 다음과 같은 내용의 메시지가 나타났습니다. Firefox가 서버가이 주소에 대한 요청을 결코 완료하지 않을 방법으로 리디렉션 중임을 감지했습니다. 나에게 많은 의미가 없습니다. – bucur89

+0

지금 사용하지 않는 기능은 무엇입니까? –

+1

링크를 구성하려면 다음을 사용하십시오. redirect ('/ employee/home /', 'refresh'); anchor ('employee/clients', '검토 클라이언트', array ('class'=> 'view_client'))); form_open ('employee/home /') – bucur89

0

새로운 CodeIgniter 설치로 시작하여이 문제를 해결하는 데 지겨워졌습니다. BASE_URL와

$config['base_url'] = 'https://admin.example.ie/'; 

등의 모든 일을, 나는 코드의 조각을 사용하여 웹 사이트를 재건. 이제 모든 것이 완벽하게 작동하며 모든 항목이 정상적으로 작동하는지 확인하기 위해 포트 및 https 상태를 체크합니다.

관련 문제