Codeigniter SSL Yönlendirme Sorunu (Çözümü) | Web bulutu

Codeigniter SSL Yönlendirme Sorunu (Çözümü)


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.

  1. Veri tabanını indirin ve bir kopya yedeğini alın.
  2. Veri tabanını notepad ile açın.
  3. ctrl+f  ile arama kutusundan değiştir seçeneğine gelin.
  4. bul kısmında http://webbulutu.net/  şeklinde web sitenizi yazın
  5. 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.
  6. Veri tabanı dosyasını kaydedin
  7. Web sitesindeki güncel veri tabanının içini boşaltın
  8. 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.

Bir önceki yazımız olan Php While döngüsü başlıklı makalemizde do while döngüsü, php anlatımlar ve php dersleri hakkında bilgiler verilmektedir.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir