CodeIgniter menghapus index.php dari url

159

Url saya saat ini terlihat seperti ini [mysite]index.php/[rest of the slug].
Saya ingin melepas index.phpdari url ini.

mod_rewritediaktifkan di server apache2 saya. Di config,$config['index_page'] = '';

.htaccessFile root codeignitor saya berisi,

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

Tapi tetap saja tidak berhasil. Di mana saya salah?

Nihar Sarangi
sumber
2
kemungkinan duplikat dari Cara menghapus "index.php" di jalur codeigniter
stormdrain
Mengapa pertanyaan ini memiliki begitu banyak jawaban rangkap
Tilak Maddy

Jawaban:

239

Coba yang berikut ini

Buka config.php dan lakukan penggantian berikut

$config['index_page'] = "index.php"

untuk

$config['index_page'] = ""

Dalam beberapa kasus, pengaturan standar untuk uri_protocoltidak berfungsi dengan benar. Ganti saja

$config['uri_protocol'] ="AUTO"

oleh

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Catatan: .htaccess code bervariasi tergantung pada server hosting. Di beberapa server hosting (mis: Godaddy) perlu menggunakan tambahan? pada baris terakhir dari kode di atas. Baris berikut akan diganti dengan baris terakhir dalam kasus yang berlaku:

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 
Rahul Tailwal
sumber
4
Saya sudah mencoba kode ini RewriteRule ^(.*)$ index.php/$1 [L]Tapi saya masih bisa melihat halaman dengan domain.com/about-us, domain.com/index.php/about-us dan domain.com/index.php?/about-us yang menghasilkan Kesalahan SEO yaitu tag judul duplikat dan deskripsi meta duplikat
Musaddiq Khan
Terima kasih atas jawabannya, saya mendapatkan masalah yang sama dan menambahkan RewriteCond pertama membuatnya berfungsi. Bisakah Anda menguraikan mengapa manual (di sini: codeigniter.com/userguide3/general/… ) tidak menyebutkannya?
Claudio
Terima kasih atas jawaban Anda, saya mendapat masalah yang sama dari tank-auth
striker_axel
$_POSTatau isset($_POST)tidak berfungsi setelah menambahkan ini.
DCK
1
dan jangan lupa untuk mengubah konfigurasi apache seperti yang disebutkan di stackoverflow.com/a/14807463/1537413
Dika
134

Langkah: -1 Buka folder "application / config" dan buka file "config.php". temukan dan ganti kode di bawah ini dalam file config.php.

//find the below code   
$config['index_page'] = "index.php" 
//replace with the below code
$config['index_page'] = ""

Langkah: -2 Buka folder CodeIgniter Anda dan buat .htaccess

Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php

Langkah: -3 Tulis kode di bawah ini dalam file .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

Langkah: -4 Dalam beberapa kasus pengaturan default untuk uri_protocol tidak berfungsi dengan baik. Untuk mengatasi masalah ini cukup buka file "application / config / config.php", lalu cari dan ganti kode di bawah ini

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

Itu semua tetapi di server wamp tidak berfungsi karena rewrite_module secara default dinonaktifkan sehingga kita harus mengaktifkannya. untuk ini lakukan hal berikut

  1. Klik kiri ikon WAMP
  2. Apache
  3. Modul Apache
  4. Klik kiri rewrite_module

Dokumentasi Asli

Contoh Tautan

MaxEcho
sumber
6
saya harus meletakkan .htaccess di folder root alih-alih folder "aplikasi" untuk membuatnya berfungsi
Mawardy
Saya tidak punya folder CodeIgniter. Apa yang kamu bicarakan?
Nicolas S.Xu
1
itu menghapus index.php tapi saya harus menghapus backslash ekstra '/' juga
Pradeep Kumar Prabaharan
setelah mengubah config.php dan membuat file .htaccess. Saya mendapatkan kesalahan Parse error: kesalahan sintaksis, '$ config' (T_VARIABLE) yang tidak terduga di aplikasi \ config \ config.php pada baris 55
Fawwad
Terima kasih atas jawabannya. Bagi saya, saya perlu memperbarui file htaccess saya seperti yang ditunjukkan dan kemudian memastikan itu adalah saudara dari folder sistem, bukan di dalamnya.
Kiky Rodriguez
44

Langkah 1 :

Tambahkan ini dalam file htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

Langkah 2 :

Hapus index.php dalam konfigurasi codeigniter

$config['base_url'] = ''; 
$config['index_page'] = '';

Langkah 3:

Izinkan mengganti htaccess di Konfigurasi Apache (Perintah)

sudo nano /etc/apache2/apache2.conf

dan edit file & ubah ke

AllowOverride All

untuk folder www

Langkah 4:

Diaktifkan apache mod rewrite (Command)

sudo a2enmod rewrite

Langkah 5:

Restart Apache (Command)

sudo /etc/init.d/apache2 restart
Dino
sumber
3
"AllowOverride All" di apache2.conf memecahkan masalah bagi saya, karena .htaccess filles tidak digunakan secara default.
Laurent Jégou
1
Saya berharap saya bisa memberi Anda bonus untuk ini! Menyelamatkan hariku. Menghabiskan 2 jam setelah ini: |
Kiran P.
1
Tampaknya untuk Distro Linux baru-baru ini hal pertama yang perlu dilakukan adalah mengedit aturan AllowOveride
Nasz Njoka Sr.
Akhirnya berhasil. Terima kasih. Aturan AllowOveride membantu saya dengan masalah ini. Saya menggunakan ubuntu 16.04
Apit John Ismail
Solusi luar biasa, Terima kasih :)
Razib Al Mamun
16
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

menggunakan

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [PT,L]

jika Anda memiliki url di situs pesanan ini.com/index.php/class/method/id

NB: hapus index.php di config.php harus config [index_page] = ""

NB: perhatikan perbedaan pada baris terakhir, bukannya $ 0 gunakan $ 1

pengguna3464848
sumber
ini bekerja untuk saya. Jawaban di atas tidak. Saya belum menguji jawaban di bawah ini.
Jam Ville
Ini bekerja untuk saya tetapi saya harus mengubah protokol uri dari 'AUTO; ke 'REQUEST_URI' seperti ini: $ config ['uri_protocol'] = 'REQUEST_URI';
isabelle martz
RewriteRule .* index.php/$1 [PT,L]- ini tidak akan melewati jalur URL kecuali Anda mengubah RewriteRule pola dari .*menjadi (.*). Namun, jika Anda menggunakan $config['uri_protocol'] = 'REQUEST_URI';maka ini tidak relevan.
MrWhite
16

Langkah 1 => Tempatkan file .htaccess Anda di folder root di mana folder aplikasi dan sistem ada.

Langkah 2 => Jika jalur web Anda menggunakan sub-folder seperti - yourdomain.com/project/ - maka gunakan kode berikut dalam file htaccess

RewriteEngine on
RewriteBase    /project/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]

Jika jalur web Anda menggunakan root-folder seperti - yourdomain.com - maka gunakan kode berikut dalam file htaccess

RewriteEngine on
RewriteBase    /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
vinod
sumber
Sejauh ini, inilah jawaban terbaik dan lengkap. Sub-folder yang membuatnya lebih baik daripada jawaban lain.
Bhavik Shah
Ini HARUS menjadi jawabannya. Jawaban yang dipilih dengan bagian tentang: RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D Itu tidak berhasil untuk saya.
GunWanderer
11

pada htaccess Anda gunakan ini,

RewriteEngine On
RewriteBase /root_folder_name/
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond $1 !^(index\.php|images|js|uploads|css|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Semoga ini membantu.

yuvaraj bathrabagu
sumber
root_folder_name -> sudahkah Anda mengubah ini dengan nama folder root Anda ??
yuvaraj bathrabagu
Ya saya lakukan itu. Saya meletakkan root codeigniter saya di sana. Apakah itu benar?
Nihar Sarangi
Sobat Saya menggunakan kode .htaccess ini di dua proyek CI saya !! dan keduanya bekerja dengan baik !!
yuvaraj bathrabagu
11

Ada dua langkah:

1) Edit config.php

$config['index_page'] = 'index.php';

Untuk

$config['index_page'] = '’;

2) Buat / Edit file .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
shafi
sumber
6
  1. buat .htaccessfile dan masukkan kode ini

     RewriteEngine on
     RewriteCond $1 !^(index\.php|resources|robots\.txt)
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
  2. perubahan

    $config['index_page'] = ''; 

hapus index.phphadir dalam config.phpfile

  1. tulis ulang dari server Anda.
Siddharth Shukla
sumber
6

1.Buat file baru .htaccess pada direktori root.

<IfModule mod_rewrite.c>
RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>`

2. Buka file config.php Anda dan ubah dari $config['index_page'] = 'index.php' menjadi$config['index_page'] = ''

Manish Sharma
sumber
6

Selesaikan dengan 2 langkah.

  1. Perbarui 2 parameter dalam aplikasi file config / config / config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Perbarui file .htaccess di folder root
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Khachornchit Songsaen
sumber
5

coba yang satu ini. Mungkin bisa membantu kamu karena berfungsi untukku.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

letakkan kodenya di file root htaccess Anda. dan pastikan sudah

$config['index_page'] = '';

dalam file konfigurasi Anda.

Tolong beri tahu saya jika Anda menghadapi masalah.

Aborty
sumber
Itulah tepatnya yang saya lakukan.
Nihar Sarangi
4
+ Copy .htaccess from Application to Root folder
+ edit .htaccess and put

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ci_test/

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Note: make sure your web server is enable for  "rewrite_module"

+ Remove index.php from $config['index_page'] = 'index.php';
- edit config.php in application/config
- search for index.php
change it from  $config['index_page'] = 'index.php'; to  $config['index_page'] = '';

Silakan tonton video ini untuk referensi https://www.youtube.com/watch?v=HFG2nMDn35Q

KH SolveCode
sumber
4

Yah semua jawaban ini baik tetapi untuk pemula (yang pertama kali melakukan) ini membingungkan. Ada file htaccess lain yang berada di controller tetapi kita harus mengedit atau menambahkan htaccess di folder proyek utama.

Ini adalah folder codeigniter Anda, tempat file berada seperti aplikasi, sistem, aset, unggahan dll.

Your_project_folder/
application/
assets/
cgi-bin/
system/
.htaccess---->(Edit this file if not exist than create it)
index.php

Ubah file ini seperti yang tertulis di bawah ini:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at http://www.example.com/mypage/test1
  # then use RewriteBase /mypage/test1/
  # Otherwise /
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: Anand Pandey
  ErrorDocument 404 /index.php
</IfModule>

dan ya tentu saja Anda perlu mengubah dua baris kode di aplikasi / config / config.php

//find the below code   
$config['index_page'] = "index.php";
$config['uri_protocol'] ="AUTO" 
//replace with the below code
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
Anand Pandey
sumber
Untuk beberapa alasan semua jawaban ini tidak berhasil untuk saya. Saya dapat mengakses halaman ketika saya menambahkan /index.php/ di url.
Bilal Ahmad
3

Baik pengembangan dan produksi

    # Development
    RewriteEngine On
    RewriteBase /your_local_folder/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]

    #Production PHP5 CGI mode
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php?/$1 [L]
cgwCode
sumber
3

pertama-tama Anda harus menggunakan mesin tulis ulang server apache on. tautan ini akan membantu Anda untuk itu

http://www.anmsaiful.net/blog/php/enable-apache-rewrite-module.html

RewriteEngine On
RewriteBase /your_folder_name/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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

ini akan menjadi file .htaccess Anda. sekarang cobalah. Pengaturan ini bekerja untuk saya.

vaibhav kulkarni
sumber
2

Anda dapat pergi ke file config \ config.php dan menghapus nilai index.php dari variabel ini

$config['index_page'] = 'index.php'; // delete index.php

buat file .htaccess dan rekatkan kode ini di dalamnya.

<IfModule mod_rewrite.c>

 Options +FollowSymLinks

 RewriteEngine On
 #Send request via index.php
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

peluang bagus

abbas hussen
sumber
2
  Removing index.php from url of codeigniter   

Three steps are require to remove index.php from url in Codeigniter.

1)Create .htacess file in parallel to application holder and just copy past the following code:

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

2) Change $config['index_page'] to blank in config.php in application folder as below:

$config['index_page'] = '';

3) Enable rewrite_module of apache.
Pritam Chaudhari
sumber
1

Hanya tiga langkah yang diperlukan untuk menghapus index.php dari url di Codeigniter

1) Buat file .htacess secara paralel dengan pemegang aplikasi dan cukup salin melewati kode berikut:

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

2) Ubah $ config ['index_page'] menjadi blank in config.php di folder aplikasi seperti di bawah ini:

$config['index_page'] = '';

3) Aktifkan "rewrite_module" dari apache.

Mulai ulang apache Anda dan selesai.

Detail: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

Suresh Kamrushi
sumber
1

Saya pikir semua pengaturan Anda baik tetapi Anda lakukan untuk salah menempatkan file htaccess Anda dan menambahkan htaccess Anda ke file proyek Anda

project_folder-> htaccess

dan tambahkan kode ini ke htaccess Anda

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Yaseen Ahmad
sumber
1

Anda dapat pergi ke file aplikasi \ config \ config.php dan menghapus index.php

 $ config ['index_page'] = 'index.php'; // hapus index.php

Mengubah

 $ config ['index_page'] = '';

Rafiqul Islam
sumber
1

coba RewriteEngine On ini

        # Removes index.php from ExpressionEngine URLs
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
Kashif
sumber
1

Ini bekerja untuk saya. Diuji dalam codeigniter 3.1.11, PHP 5.6.40 Saya menggunakan virtualhost di konfigurasi apache2 saya di server pengujian.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot (__DIR__)
     ServerName mydomain
     ##ErrorLog "logs/dummy-host2.example.com-error.log"
     ##CustomLog "logs/dummy-host2.example.com-access.log" common
     <Directory "(__DIR__)">
        Require all granted
        AllowOverride All
   </Directory>
</VirtualHost>

Dan /.htaccess konten

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php/$1 [L] 
    </IfModule>
jose insfran
sumber
0

Ikuti langkah ini masalah Anda akan terpecahkan

1- Unduh file .htaccess dari sini https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Ubah nama direktori CodeIgnitor pada Baris # 5. seperti nama direktori saya abc (tambahkan nama Anda)

3 - Simpan file .htaccess pada direktori utama (abc) folder codeignitor Anda

4- Ubah uri_protocol dari AUTO ke PATH_INFO dalam file Config.php

Catatan: Pertama-tama Anda harus mengaktifkan mod_rewrite dari httpd.conf dari apachi dengan menghapus komentar

Salman Khan
sumber
0

Gunakan kode ini. Ubah baris ke-2 saat Anda memiliki nama folder Anda. Di mana aplikasi index.php dan folder, folder sistem terletak. Sebagian besar masalah terjadi karena baris kedua. kami tidak mengonfigurasi nama folder tempat proyek berada. Penting adalah baris kedua. Ini mudah untuk menghapus index.php. RewriteEngine di RewriteBase / project_folder_name RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. * Index.php / $ 0 [PT, L]

#RewriteEngine on
#RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ index.php/$1 [L]    

Buka file controller / config.php.

config ['index_url'] = '';

Referensi untuk studi lebih lanjut.

https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

https://ellislab.com/blog/entry/fully-removing-index.php-from-urls

Hafiz Shehbaz Ali
sumber
0

Selain jawaban-jawaban ini, orang dapat saja, menambahkan index.php atau mengeditnya (jika sudah ada) - untuk keamanan Anda ingin menonaktifkan index.php, dari daftar file di direktori situs web Anda - kemudian ubah konten menjadi

<?php
   header('location:your_required_starting.php'); 
?>
bennyhardjono
sumber
0

Hal kecil: (Opsional)

Coba mulai ulang Apache Anda setelah memperbarui status penulisan ulang mesin di vhosts sebagai Rewrite ON.

Satu hal penting untuk diperhatikan:

Dalam file Apache vhosts, periksa apakah Anda memiliki baris skrip ini AllowOverride None Jika ya, harap hapus / komentari baris ini.

Skrip file vhosts saya: (Sebelumnya)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

Skrip file vhosts saya: (Setelah)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        #AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

Saya menghadapi masalah yang sama, berjuang selama sekitar 1 hari, semua baik-baik saja. Kemudian, dengan metode coba-coba, ditemukan benda ini. Setelah menghapus ini, pekerjaan saya selesai. URL sekarang tidak mencari index.php :)

Lalith Kumar
sumber
0

jika semua solusi di atas tidak berfungsi maka di folder proyek Anda mereka akan dua file index.html dan index.php, ganti nama index.html ke index_1.html dan jelajahi proyek Anda.

Mohsin Shoukat
sumber
0

Perhatikan perbedaannya dengan menambahkan "?" karakter setelah ".php", terutama ketika berhadapan dengan CodeIgniter:

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

vs.

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

Tergantung pada beberapa hal lain .. jika tidak berhasil, coba opsi lain!

eyal_katz
sumber
0

Anda dapat menghapus index.php dari url dengan menempatkan beberapa kode di .htaccess

Jalur file: root> .htacess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


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

Semoga ini berhasil.

Rokan Nashp
sumber
0

Dalam CodeIgniter 3.16 dalam menggunakan htaccess untuk

hapus file index.php

& juga

redirect HTTP ke HTTPS

Ikuti kodenya:

  • buka application\config\config.phpfile

Membuat perubahan

$config['index_page'] = 'index.php';

Untuk

$config['index_page'] = '';
  • Sekarang, Buka file .htaccess, dan perbarui kode di bawah ini
RewriteEngine on
RewriteBase /

## Redirect SSL
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

## Remove fron url index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 
Chandan Sharma
sumber