Merhabalar, bu yazımızda codeigniter https:// yönlendirme sorununu çözeceğiz. Genellikle ssl kurulumu sonrasında ortaya çıkan bu sorun, htaccess dosyaları ile çözülemiyor (en azından ben çok denedim). Bir de elinizin altında plesk panel yoksa vay halinize! :)) Neyse fazla uzatmadan konumuza geçelim.
Codeigniter ssl sorunu‘na çözüm arıyorsanız, aşağıdaki adımları uygulayarak kolaylıkla ssl sorununa çözüm getirebilirsiniz.
Sunucu tarafında SSL kurulumunu yaptığınızı varsayarak ilerliyorum. Çünkü ssl kurulumu başlı başına bir konu. Kurulum hazırsa aşağıdaki adımlara geçelim.
Adım 1: Application/config/config.php dosyasındaki base_url alanını https:// formatına çevirelim.
$config['base_url'] = 'https://siteadi.com/';
Adım 2: Application/config/config.php dosyasında aşağıdaki satırın değerini true yapalım
$config['enable_hooks'] = TRUE;
Adım 3: Application/config/hooks.php dosyasını açarak aşağıdaki satırları ekleyelim
$hook['post_controller_constructor'][] = array(
'function' => 'redirect_ssl',
'filename' => 'ssl.php',
'filepath' => 'hooks'
);
Adım 4: Aşağıdaki kodları kullanarak yeni bir dosya oluşturun ve ssl.php olarak adlandırın. Oluşturduğunuz dosyayı da Application/hooks/ klasörünün içerisine atın. Dosyanın başına <?php sonuna da ?> eklemeyi unutmayın, php dosyası oluşturuyoruz sonuçta.
function redirect_ssl() {
$CI =& get_instance();
$class = $CI->router->fetch_class();
$exclude = array('client'); // add more controller name to exclude ssl.
if(!in_array($class,$exclude)) {
// redirecting to ssl.
$CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] != 443) redirect($CI->uri->uri_string());
} else {
// redirecting with no ssl.
$CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] == 443) redirect($CI->uri->uri_string());
}
}
Son olarak aşağıdaki kodu kendinize göre düzenleyerek, ana dizinde bulunan htaccess dosyanıza ekleyin ve kaydedin.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.webbulutu\.net
RewriteRule (.*) https://webbulutu.net/$1 [R=301,L]
Önemli Not:
Bunların hepsini yapmanıza rağmen SSL hatası alıyorsanız, tasarımda ve yazılarda kullandığınız görsellerin linklerini elle https:// olarak güncellemeniz gerekmekte. Toplu bir şekilde bunu yapmak isterseniz aşağıdaki adımları izleyin.
- Veri tabanını indirin ve bir kopya yedeğini alın.
- Veri tabanını notepad ile açın.
- ctrl+f ile arama kutusundan değiştir seçeneğine gelin.
- bul kısmında https://webbulutu.net/ şeklinde web sitenizi yazın
- Değiştir kısmına ise https://webbulutu.net/ şeklinde web sitenizi yazın ve tümünü değiştire tıklayın.
- Veri tabanı dosyasını kaydedin
- Web sitesindeki güncel veri tabanının içini boşaltın
- Güncelleme yaptığınız veri tabanını içe aktarın.
Bazen tasarımsal olarak (php, html, css, js) http:// linkleri kullanılabiliyor, onları da dosyalarınızda aratarak değiştirin.
Codeigniter SSL sorununu bu şekilde çözmüş oluyoruz. bir başka yazımızda görüşmek üzere.
Eve çok güzel hazırladınız. Ben uyguladım harika çalıştı. Emeğinize sağlık.
Rica ederim, kolay gelsin 🙂