Codeigniter - tidak ada file input yang ditentukan

86

Saya seorang pemula di Codeigniter dan saya melihat tutorial CI dan hanya mencoba melakukan hal yang sederhana. Saya mengunduh CI dan menambahkan file ini ke direktori pengontrol, tetapi tidak akan berhasil.

<?php

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

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

Ketika saya mencoba mengaksesnya menggunakan http: //..../index.php/site saya mendapatkan output ... "tidak ada file input yang ditentukan" .... omong-omong, saya menamai file site.php

koool
sumber
Coba periksa tautan ini dan lihat apakah itu memperbaiki masalah.
Vap0r
Tidak tidak membantu terima kasih atas usahanya
koool

Jawaban:

291

Tambahkan saja ? tanda tangani index.php di file .htaccess:

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

dan itu akan berhasil!

Ali Mohamed
sumber
Bagi saya ini melayani pengalihan 301 dan saya berakhir dengan /? / Di URL.
Ade
@ Ali Mohamed, file htaccess manakah yang Anda tambahkan baris ini? Saya mencoba tetapi tidak berhasil
Bahdeng
1
@Bahdeng Anda perlu menempatkan potongan ini dalam file .htaccess di direktori proyek Anda.
Ali Mohamed
ubah baris di atas sesuai dengan direktori aplikasi Anda seperti jika aplikasi Anda tidak ada di direktori root, tulis kode berikut sebagai ganti baris di atasRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
1
@NSGodMode yang akan berada di direktori root codeigniter selain index.php
Ali Mohamed
58

Hosting GoDaddy sepertinya sudah diperbaiki .htaccess, saya sendiri berfungsi

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

untuk

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
Sekar Suresh S
sumber
ubah baris di atas sesuai dengan direktori aplikasi Anda seperti jika aplikasi Anda tidak ada di direktori root, tulis kode berikut sebagai ganti baris di atasRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
Ini membuat saya 404 halaman tidak ditemukan dengan CI 3
Nipun Tyagi
38

Saya menemukan jawaban untuk pertanyaan ini di sini ..... Masalahnya adalah server hosting ... Saya berterima kasih kepada semua yang mencoba .... Semoga ini bisa membantu orang lain

Tips Instalasi GoDaddy

koool
sumber
ubah baris di atas sesuai dengan direktori aplikasi Anda seperti jika aplikasi Anda tidak ada di direktori root, tulis kode berikut sebagai ganti baris di atasRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
17

RewriteEngine, DirectoryIndex dalam file .htaccess aplikasi CodeIgniter

Saya baru saja mengubah konten file .htaccess dan seperti yang ditunjukkan pada tautan berikut jawabannya. Dan mencoba menyegarkan halaman (yang tidak berfungsi, dan tidak dapat menemukan permintaan ke pengontrol saya) itu berhasil.

Kemudian hanya karena keraguan saya, saya membatalkan perubahan yang saya lakukan pada .htaccess saya di dalam folder public_html saya kembali ke konten .htaccess asli . Jadi sekarang sebagai berikut (yang aslinya):

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]

Dan sekarang juga berhasil.

Petunjuk: Sepertinya sebelumnya Aturan Penulisan Ulang belum diatur dengan jelas dalam konteks Server.

Struktur file saya adalah sebagai berikut:

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

Dan di index.phpSaya telah menyiapkan jalur berikut ke sistem dan aplikasi:

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

Catatan: dengan melakukan itu, kode sumber aplikasi kita disembunyikan untuk umum pada awalnya.

Tolong, jika kalian menemukan sesuatu yang salah dengan jawaban saya, komentari dan koreksi ulang saya!
Semoga pemula akan menemukan jawaban ini bermanfaat.

Terima kasih!

Randika Vishman
sumber
1

Situs saya dihosting di MochaHost, saya mengalami kesulitan untuk menyiapkan file .htaccess sehingga saya dapat menghapus index.php dari url saya. Namun, setelah beberapa googling, saya menggabungkan jawaban di utas ini dan jawaban lainnya. File .htaccess kerja terakhir saya memiliki konten berikut:

<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>
MC Musim Dingin
sumber