Neden CodeIgniter uygulama dosyaları public_html klasörü vardır?

5 Cevap php

Kamu görünümünde kötü bir şey de tüm dosyaları sahip değil mi?

Şüphesiz gibi / sistem / application / config / database.php gibi şeyler alenen görünür olmamalı!

5 Cevap

CodeIgniter geliştiricileri, EllisLabs, kullanım kolaylığı için bu şekilde çerçeve kurdunuz. Bu çerçeve denemek isteyen insanlar kendi sunucusu üzerinde herhangi bir izinleri ayarlarla uğraşmanız gerekmez anlamına gelir.

Tabii bir üretim sunucusuna, sen kamu HTML klasörüne PHP dosyaları koyarak, kesinlikle haklısın iyi bir fikir değildir.

Klasörlerinizi düzenlemek için daha iyi bir yolu olacaktır:

  • root
    • code_igniter
      • application_folder
        • yapılandırma
        • kontrolörleri
        • modeller
        • ...
      • system_folder
    • public_html
      • css
      • js
      • images index.php .htaccess

Burada yapılacak tek diğer değişiklik okumak için index.php 26 hattı değiştirmek olacaktır:

$system_folder = "../../code_igniter/system-folder";

. Daha fazla (403 Yasak hatası gönderir) izlendi olmaktan sistem ve uygulama dizinleri korumak için htaccess dosyasına aşağıdaki kural ekleyebilirsiniz:

# Protect application and system files from being viewed
RewriteRule ^(application|system) - [F,L]

Bir değişken tanımlanmış ise (CI sistem dosyalarını bile dosya değildi gösterir görmek için kontrol edebilir PHP işlenecek ve hiçbir şey bu dosyalardan çıktı çünkü bir tarayıcıdan / system / içindeki dosyaları erişen, herhangi bir hassas bilgileri açığa olmaz 't) doğrudan erişilir.

Bu ancak, muhtemelen yine web kökü üzerinde tüm sistem klasörü yüklemeniz gerekir, söyleniyor.

Her zaman kamu dizinin dışında sistem dizini yerleştirebilirsiniz. Ön denetleyicisi (index.php) iç yolları güncelleme unutmayın.

Bu yapı sayesinde:

/application
/system
/public
   index.php 

Sen public/index.php bu iki ayar değiştirmek ve bitirdiniz

$application_folder = '../application';
$system_path = '../system';