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?



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] 

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


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

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


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]

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.


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]

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.

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'] = ''


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>

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.


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


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";

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]

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.


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


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.

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/


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]

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'] = '';


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>

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 webmaster@dummy-host2.example.com
     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>

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


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


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'); 
?>

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 :)


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.


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!


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.


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] 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.