CodeIgniter url'den index.php kaldırma


160

Mevcut URL'lerim şöyle görünüyor [mysite]index.php/[rest of the slug]. Bu url'lerden
soymak istiyorum index.php.

mod_rewriteapache2 sunucumda etkin. İçinde config,$config['index_page'] = '';

Codeignitor kök dosyamda .htaccess,

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

Ama yine de çalışmıyor. Nerede yanlış gidiyorum?



Bu sorunun neden bu kadar çok cevabı var?
Tilak Maddy

Yanıtlar:


239

Takip etmeyi dene

Config.php dosyasını açın ve aşağıdaki değişiklikleri yapın

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

için

$config['index_page'] = ""

Bazı durumlarda için varsayılan ayar uri_protocoldüzgün çalışmaz. Sadece değiştirin

$config['uri_protocol'] ="AUTO"

tarafından

$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] 

Not: .htaccess kodu barındırma sunucusuna bağlı olarak değişir. Bazı barındırma sunucusunda (örneğin: Godaddy) ekstra mı kullanmanız gerekiyor? Yukarıdaki kodun son satırında. Aşağıdaki durumlarda, aşağıdaki satır son satır ile değiştirilecektir:

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

4
Bu kodu denedim RewriteRule ^(.*)$ index.php/$1 [L]ama yine de sayfayı her iki şekilde de görüntüleyebilirim domain.com/about-us, domain.com/index.php/about-us ve domain.com/index.php?/about-us hangi oluşturma SEO hatası yani yinelenen başlık etiketi ve yinelenen meta açıklaması
Musaddiq Khan

Cevabınız için teşekkür ederim, aynı sorunu aldım ve ilk RewriteCond'un çalışmasını sağlayın. Kılavuzun (burada: codeigniter.com/userguide3/general/… ) neden bahsetmediğini açıklayabilir misiniz ?
Claudio

Cevabınız için teşekkür ederim, tank-
auth'dan

$_POSTveya isset($_POST)ekledikten sonra çalışmıyor.
DCK


135

Adım: -1 “application / config” klasörünü ve “config.php” dosyasını açın. config.php dosyasında aşağıdaki kodu bulun ve değiştirin.

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

Adım: -2 CodeIgniter klasörünüze gidin ve .htaccess oluşturun

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

Adım: -3 Aşağıdaki kodu .htaccess dosyasına yazın

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

Adım: -4 Bazı durumlarda uri_protocol için varsayılan ayar düzgün çalışmaz. Bu sorunu çözmek için “application / config / config.php” dosyasını açın, ardından aşağıdaki kodu bulun ve değiştirin

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

Thats wamp sunucusunda hepsi işe yaramıyor, çünkü rewrite_module varsayılan olarak devre dışı olduğundan çalışmaz. bunun için aşağıdakileri yapın

  1. Sol tıklama WAMP simgesi
  2. Apaçi
  3. Apache Modülleri
  4. Sol tıklama rewrite_module

Orijinal Belgeler

Örnek Bağlantı


6
Ben bu işi yapmak için "uygulama" klasörü yerine kök klasörüne .htaccess koymak zorunda kaldı
Mawardy

CodeIgniter klasörüm yok. Neden bahsediyorsun?
Nicolas S.Xu

1
index.php'yi kaldırır, ancak ekstra ters eğik çizgi '/' yi de kaldırmam gerekiyor
Pradeep Kumar Prabaharan

config.php dosyasını değiştirdikten ve .htaccess dosyası oluşturduktan sonra. Hata alıyorum Ayrıştırma hatası: sözdizimi hatası, satır
55'teki

Cevap için teşekkür ederim. Benim için, htaccess dosyamı gösterildiği gibi güncellemem ve ardından dosyanın içinde değil, sistem klasörünün bir kardeşi olduğundan emin olmalıydım.
Kiky Rodriguez

44

Aşama 1 :

Bunu htaccess dosyasına ekle

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

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

Adım 2 :

Codeigniter config dizin.php kaldır

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

Aşama 3 :

Apache Yapılandırmasında (Komut) htaccess'in geçersiz kılınmasına izin ver

sudo nano /etc/apache2/apache2.conf

ve dosyayı düzenleyin ve olarak değiştirin

AllowOverride All

www klasörü için

4. Adım:

Etkin apache mod yeniden yazma (Komut)

sudo a2enmod rewrite

Adım 5 :

Apache'yi Yeniden Başlat (Komut)

sudo /etc/init.d/apache2 restart

3
Apache2.conf dosyasındaki "AllowOverride All" (Tümüne İzin Ver), .htaccess dolguları varsayılan olarak kullanılmadığı için sorunu çözdü.
Laurent Jégou

1
Keşke sana bonus verebilirim! Günümü kurtardım. Bundan 2 saat sonra: |
Kiran P.

1
Görünüşe göre son Linux Distros için birinin yapması gereken ilk şey AllowOveride kuralını düzenlemektir
Nasz Njoka Sr.

Sonunda işi alabildim. Teşekkürler. AllowOveride kuralı bu sorunla ilgili bana yardımcı oluyor.
Ubuntu

Mükemmel çözüm, teşekkürler :)
Razib Al Mamun

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

kullanım

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

bu siparişte url'niz varsa site.com/index.php/class/method/id

Not: config.php dosyasındaki index.php dosyasını kaldır config [index_page] = ""

Not: 0 $ yerine son satırdaki farkı 1 $ kullanın


bu benim için çalışıyor. Yukarıdaki cevaplar yoktur. Aşağıdaki cevapları test etmedim.
Jam Ville

Bu benim için çalıştı ama uri protokolünü 'AUTO'dan değiştirmek zorunda kaldım; şu şekilde 'REQUEST_URI' konumuna: $ config ['uri_protocol'] = 'REQUEST_URI';
isabelle martz

RewriteRule .* index.php/$1 [PT,L]- Eğer değiştirmedikçe bu URL yolunu geçemez RewriteRule desen gelen .*etmek (.*). Ancak, $config['uri_protocol'] = 'REQUEST_URI';o zaman bu zaten ilgisiz.
MrWhite

16

Adım 1 => .htaccess dosyanızı uygulama ve sistem klasörlerinin bulunduğu kök klasöre yerleştirin.

Adım 2 => alaniniz.com/project/ gibi bir alt klasör kullanarak web yolunuz varsa, htaccess dosyasında aşağıdaki kodu kullanın

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

Web yolunuz - alanadiniz.com.tr gibi bir kök klasör kullanıyorsa, htaccess dosyasında aşağıdaki kodu kullanın

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

Bu açık ara en iyi ve eksiksiz cevaptır. alt klasör şey, diğer cevaplardan daha iyi yapan şeydir.
Bhavik Shah

Bu cevap olmalı. Şu bölümle ilgili oylama yanıtı: RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D Bu benim için çalışmadı.
GunWanderer

11

htaccess'inizde bunu kullanın,

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]

Bu yardımcı olur umarım.


root_folder_name -> bunu kök klasör adınızla değiştirdiniz mi ??
yuvaraj bathrabagu

Evet, ben yaptım. Kodigniter kökümü oraya koydum. Bu doğru mu?
Nihar Sarangi

Dostum bu .htaccess kodunu iki CI projemde kullanıyorum !! ve her ikisi de iyi çalışıyor!
yuvaraj bathrabagu

11

İki adım vardır:

1) config.php dosyasını düzenleyin

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

için

$config['index_page'] = '’;

2) .htaccess dosyası oluşturun / düzenleyin

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

6
  1. yapmak .htaccessdosyası ve bu kodu koymak

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

    $config['index_page'] = ''; 

index.phpmevcut config.phpdosyayı kaldır

  1. sunucunuzdan yeniden yazın.

6

Kök dizinde yeni bir dosya .htaccess oluşturun.

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

2. config.php dosyanıza gidin ve $config['index_page'] = 'index.php' yerine$config['index_page'] = ''


6

2 adımda çözüldü.

  1. Config / config / config.php yapılandırma dosyasındaki 2 parametreyi güncelleyin
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Kök klasöründeki .htaccess dosyasını güncelleyin
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

5

Bu benim için çalışıyor gibi yardımcı olabilir.

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

kodu kök htaccess dosyanıza koyun.

$config['index_page'] = '';

yapılandırma dosyanızda.

Herhangi bir sorunla karşılaşırsanız lütfen bize bildirin.


Ben de tam olarak bunu yapıyordum.
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'] = '';

Lütfen referans için bu videoları izleyin https://www.youtube.com/watch?v=HFG2nMDn35Q


4

Tüm bu cevaplar iyi ama bir acemi için (ki ilk kez yapmak) bunlar kafa karıştırıcı. Denetleyicide bulunan başka htaccess dosyaları var, ancak ana proje klasörüne htaccess'i düzenlememiz veya eklememiz gerekiyor.

Bu, dosyanın uygulama, sistem, varlıklar, yüklemeler vb. Gibi bulunduğu kod yöneticisi klasörünüzdür.

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

Bu dosyayı aşağıda yazıldığı gibi değiştirin:

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

ve evet tabii ki application / config / config.php dosyasındaki iki kod satırını değiştirmeniz gerekiyor

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

Nedense tüm bu cevaplar benim için geçerli değil. URL'ye /index.php/ eklediğimde sayfalara erişebiliyorum.
Bilal Ahmad

3

Hem geliştirme hem de üretim

    # 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

her şeyden önce apache sunucusunda motoru yeniden yazmanız gerekiyor. bu bağlantı bunun için size yardımcı olacaktır

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]

bu .htaccess dosyanız olacaktır. şimdi deneyin. bu ayar benim için çalışıyor.


2

config \ config.php dosyasına gidebilir ve index.php değerini bu değişkenten kaldırabilirsiniz

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

.htaccess dosyası oluşturun ve bu kodu içine yapıştırın.

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

iyi şans


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

Codeigniter'da index.php dosyasını url'den kaldırmak için yalnızca üç adım gerekir

1) Uygulama sahibine paralel olarak .htacess dosyası oluşturun ve aşağıdaki kodu geçerek kopyalayın:

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) Uygulama klasöründeki config.php dosyasında $ config ['index_page'] öğesini aşağıdaki gibi değiştirin:

$config['index_page'] = '';

3) apache'nin “rewrite_module” özelliğini etkinleştirin.

Apache'nizi yeniden başlatın ve bitti.

Ayrıntılar: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/


1

Tüm ayarlarınızın iyi olduğunu düşünüyorum ama htaccess dosyanızı yanlış yere koyup proje dosyasına htaccess'inizi ekliyorsunuz

project_folder-> htaccess

ve bu kodu htaccess'inize ekleyin

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

1

application \ config \ config.php dosyasına gidebilir ve index.php dosyasını kaldırabilirsiniz

 $ config ['index_page'] = 'index.php'; // index.php dosyasını sil

Değişmek

 $ config ['index_page'] = '';


1

bu RewriteEngine'i dene

        # 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

Bu benim için çalışıyor. Codeigniter 3.1.11, PHP 5.6.40 test Test sunucusunda apache2 yapılandırmada bir sanal ana bilgisayar kullanıyorum.

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

Ve /.htaccess içeriği

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

0

Bu adımı izleyin, sorununuz çözülecek

1- .htaccess dosyasını buradan indirin https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Satır # 5'deki CodeIgnitor dizin adını değiştirin. dizin adım abc gibi (adınızı ekleyin)

3- .htaccess dosyasını codeignitor klasörünüzün ana dizinine (abc) kaydedin

4- Config.php dosyasında uri_protocol öğesini AUTO yerine PATH_INFO olarak değiştirin

Not: Öncelikle yorumları kaldırarak apachi'nin httpd.conf dosyasından mod_rewrite özelliğini etkinleştirmelisiniz.


0

Bu kodu kullanın. Klasör adınız olduğu gibi 2. satırı değiştirin. Burada index.php dosyası ve klasörleri uygulaması, sistem klasörü yatar. Çoğunlukla sorunlar ikinci hattan kaynaklanır. projenin bulunduğu klasör adını yapılandırmayız. Önemli 2. satır. Bu index.php kaldırmak kolaydır. RewriteBase / project_folder_name üzerinde RewriteEngine RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. * İndex.php / $ 0 [PT, L]

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

Controller / config.php dosyasına gidin.

Yapılandırma [ 'index_url'] = '';

Daha fazla çalışma için referans.

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

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


0

Bu yanıtların yanı sıra, index.php ekleyebilir veya düzenleyebilir (zaten varsa) - yine de index.php'yi devre dışı bırakmak istediğinizde, web sitesi dizininizdeki dosyaları listelemekten sonra içeriği değiştirin

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

0

Küçük şey: (İsteğe bağlı)

Vhosts'ta yeniden yazma motoru durumunu güncelledikten sonra Apache'nizi yeniden başlatmayı deneyin Rewrite ON.

Dikkat edilmesi gereken kritik bir şey:

Apache vhosts dosyasında, bu komut dosyası satırına sahip olup olmadığınızı kontrol edin AllowOverride None Evetse, lütfen bu satırı kaldırın / yorumlayın.

Benim vhosts dosya betiğim: (Önce)

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

Benim vhosts dosya betiğim: (Sonra)

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

Aynı sorunla karşılaştım, yaklaşık 1 gün boyunca mücadele ettim, hepsi iyi. Daha sonra deneme yanılma yöntemiyle bu şeyi buldu. Bunu kaldırdıktan sonra işim tamamlandı. URL artık index.php aramıyor :)


0

yukarıdaki tüm çözüm işe yaramazsa, proje klasörünüzde iki dosya index.html ve index.php olacaktır, index.html dosyasını index_1.html olarak yeniden adlandırın ve projenize göz atın.


0

Eklenen "?" İle farkı not edin ".php" den sonraki karakter, özellikle CodeIgniter ile uğraşırken:

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

vs.

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

Diğer bazı şeylere bağlıdır .. işe yaramazsa, diğer seçeneği deneyin!


0

.Htaccess içine bazı kodlar yerleştirerek index.php dosyasını url'den kaldırabilirsiniz

Dosya yolu: 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]

Umarım işe yarar.


0

CodeIgniter 3.16 içinde htaccess kullanarak

index.php dosyasını kaldır

& Ayrıca

HTTP'yi HTTPS'ye yönlendir

Kodları izleyin:

  • application\config\config.phpdosyaya git

Değişiklik yapmak

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

için

$config['index_page'] = '';
  • Şimdi, .htaccess dosyasını açın ve aşağıdaki kodları güncelleyin
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] 
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.