Codeigniter - girdi dosyası belirtilmedi


86

Codeigniter'da yeni başlayan biriyim ve bir CI eğitimi gördüm ve sadece basit bir şey yapmaya çalışıyordum. CI'yi indirdim ve bu dosyayı denetleyici dizinine ekledim, ancak çalışmıyor.

<?php

class site extends CI_Controller
{
    public function index()
    {
        echo "Hello World";
    }

    function dosomething()
    {
        echo "Do Something";
    }   
}    
?>

Http: //..../index.php/site kullanarak erişmeye çalıştığımda çıktıyı alıyorum ... "hiçbir girdi dosyası belirtilmedi" .... bu arada, dosyayı site.php olarak adlandırdım


Bu bağlantıya göz atmayı deneyin ve sorunu çözüp çözmediğine bakın.
Vap0r

Çaba için teşekkürler, hayır yardımcı
olmuyor

Yanıtlar:


291

Sadece ekleyin ? .htaccess dosyasında index.php'den sonra imzalayın:

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

ve işe yarayacak!


Benim için bu 301 yönlendirmesine hizmet ediyor ve URL'de /? / İle bitiyorum.
Ade

@Ali Mohamed, bu satırı htaccess dosyasından hangisini ekliyorsunuz? Denedim ama herhangi bir etkisi
olmadı

1
@Bahdeng Bu pasajı proje dizininizdeki .htaccess dosyasına yerleştirmeniz gerekir.
Ali Muhammed

Yukarıdaki satırı uygulama dizininize göre değiştirin, örneğin uygulamanız kök dizinde değilse, yukarıdaki satırın yerine aşağıdaki kodu yazınRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

1
İndex.php dışında kod işaretleyici kök dizininde olacak @NSGodMode
Ali Mohamed

58

Godaddy hosting sabit görünüyor .htaccess, kendim çalışıyor

RewriteRule ^(.*)$ index.php/$1 [L]

-e

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

yukarıdaki satırı uygulama dizininize göre değiştirin, örneğin uygulamanız kök dizinde değilse, yukarıdaki satırın yerine aşağıdaki kodu yazınRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

CI 3 ile 404 sayfası bulunamadı
Nipun Tyagi

38

Bu sorunun cevabını burada buldum ..... Sorun barındırma sunucusuydu ... Deneyen herkese teşekkür ederim .... Umarım bu başkalarına yardımcı olur

Godaddy Kurulum İpuçları


Yukarıdaki satırı uygulama dizininize göre değiştirin, örneğin uygulamanız kök dizinde değilse, yukarıdaki satırın yerine aşağıdaki kodu yazınRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

17

RewriteEngine, CodeIgniter uygulamalarının .htaccess dosyasında DirectoryIndex

.Htaccess dosya içeriğini değiştirdim ve aşağıdaki bağlantılarda gösterildiği gibi cevap. Ve sayfayı yenilemeyi denedim (işe yaramadı ve denetleyicime gelen isteği bulamadı) işe yaradı.

Sonra sırf şüphem yüzünden public_html klasörümdeki .htaccess'ime yaptığım değişiklikleri orijinal .htaccess içeriğine geri aldım . Öyleyse şimdi aşağıdaki gibidir (orijinal olarak buydu):

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

Ve şimdi de çalışıyor.

İpucu: Yeniden Yazma Kuralları, Sunucu bağlamında net bir şekilde kurulmamış gibi görünüyor.

Dosya yapım aşağıdaki gibidir:

/
|- gheapp
|    |- application
|    L- system
|
|- public_html
|    |- .htaccess
|    L- index.php

Ve index.phpsisteme ve uygulamaya aşağıdaki yolları kurdum:

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

Not: Bunu yaptığınızda, uygulama kaynak kodumuz ilk başta herkese açık hale gelir.

Lütfen, cevabımda yanlış bir şey bulursanız, yorum yapın ve beni yeniden düzeltin!
Umarım yeni başlayanlar bu cevabı yararlı bulurlar.

Teşekkürler!


1

Sitem MochaHost'ta barındırılıyor, index.php'yi url'lerimden kaldırabilmem için .htaccess dosyasını kurmakta zorlandım. Ancak, biraz googling yaptıktan sonra, bu konudaki cevabı ve diğer cevapları birleştirdim. Son çalışan .htaccess dosyam aşağıdaki içeriğe sahip:

<IfModule mod_rewrite.c>
    # Turn on URL rewriting
    RewriteEngine On

    # If your website begins from a folder e.g localhost/my_project then 
    # you have to change it to: RewriteBase /my_project/
    # If your site begins from the root e.g. example.local/ then
    # let it as it is
    RewriteBase /

    # Protect application and system files from being viewed when the index.php is missing
    RewriteCond $1 ^(application|system|private|logs)

    # Rewrite to index.php/access_denied/URL
    RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

    # Allow these directories and files to be displayed directly:
    RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images)

    # No rewriting
    RewriteRule ^(.*)$ - [PT,L]

    # Rewrite to index.php/URL
    RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.