it-swarm.com.de

CodeIgniter entfernt index.php von URL

Meine aktuellen URLs sehen so aus [mysite]index.php/[rest of the slug].
Ich möchte index.php von diesen URLs entfernen. 

mod_rewrite ist auf meinem Apache2-Server aktiviert. In config, $config['index_page'] = ''; 

Meine Codeignitor-Wurzel .htaccess-Datei enthält 

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

Aber es funktioniert immer noch nicht. Wohin gehe ich falsch? 

126
Nihar Sarangi

Versuche Folgendes

Öffnen Sie die config.php und führen Sie folgende Ersetzungen durch

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

zu

$config['index_page'] = ""

In einigen Fällen funktioniert die Standardeinstellung für uri_protocol nicht ordnungsgemäß. Einfach austauschen 

$config['uri_protocol'] ="AUTO"

durch

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

Hinweis: Der .htaccess-Code variiert je nach Hosting-Server. Bei einigen Hosting-Servern (z. B. Godaddy) muss ein zusätzlicher Server verwendet werden? in der letzten Zeile des obigen Codes. Die folgende Zeile wird in diesem Fall durch die letzte Zeile ersetzt:

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

Schritt: -1 Öffnen Sie den Ordner „application/config“ und öffnen Sie die Datei „config.php“. Suchen und ersetzen Sie den folgenden Code in der Datei config.php.

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

Schritt: -2 Wechseln Sie in Ihren CodeIgniter-Ordner, und erstellen Sie .htaccess

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

Schritt: -3 Schreibe den folgenden Code in die .htaccess-Datei

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

Schritt: -4 In einigen Fällen funktioniert die Standardeinstellung für uri_protocol nicht ordnungsgemäß. Um dieses Problem zu lösen, öffnen Sie einfach die Datei „application/config/config.php“, suchen und ersetzen Sie den folgenden Code

//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

Das ist alles außer auf dem Wamp-Server, es funktioniert nicht, weil rewrite_module standardmäßig deaktiviert ist. Dazu machen Sie folgendes

  1. Klicken Sie mit der linken Maustaste auf das WAMP-Symbol
  2. Apache
  3. Apache-Module
  4. Klicken Sie mit der linken Maustaste auf rewrite_module

Originaldokumentation

Beispiel Link

108
Salim

Schritt 1 :

Fügen Sie dies in der htaccess-Datei hinzu

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

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

Schritt 2 :

Entfernen Sie index.php in der Codeigniter-Konfiguration

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

Schritt 3 :

Überschreiben von htaccess in der Apache-Konfiguration zulassen (Befehl)

Sudo nano /etc/Apache2/Apache2.conf

und bearbeiten Sie die Datei und ändern Sie zu

AllowOverride All

für den WWW-Ordner

Schritt 4 :

Apache-Mod-Umschreiben (Befehl) aktiviert

Sudo a2enmod rewrite

Schritt 5:

Apache neu starten (Befehl)

Sudo /etc/init.d/Apache2 restart
31
Dino

Schritt 1 => Legen Sie Ihre .htaccess-Datei im Stammverzeichnis ab, in dem sich Anwendungs- und Systemordner befinden.

Schritt 2 => Wenn Ihr Webpfad einen Unterordner wie - yourdomain.com/project/ - verwendet, verwenden Sie folgenden Code in der htaccess-Datei

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

Wenn Ihr Webpfad einen Stammordner wie - IhreDomäne.com verwendet - verwenden Sie folgenden Code in der htaccess-Datei

RewriteEngine on
RewriteBase    /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
15
vinod
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

benutzen

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

wenn Sie eine URL in dieser Reihenfolge haben, site.com/index.php/class/method/id

Hinweis: Entfernen Sie index.php in config.php sollte config [index_page] = "" sein.

Hinweis: Beachten Sie den Unterschied in der letzten Zeile anstelle von $ 0 und verwenden Sie $ 1

15
user3464848

Es gibt zwei Schritte: 

1) Bearbeiten Sie die config.php

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

Zu 

$config['index_page'] = '’;

2) .htaccess-Datei erstellen/bearbeiten

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

verwenden Sie dies auf Ihrem Zugriff,

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]

Hoffe das hilft.

10

1.Erstellen Sie eine neue Datei .htaccess im Stammverzeichnis.

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

2. Gehen Sie in Ihre config.php-Datei und ändern Sie von $config['index_page'] = 'index.php' zu $config['index_page'] = ''

5
Manish Sharma
  1. .htaccess-Datei erstellen und diesen Code eingeben

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

    $config['index_page'] = ''; 
    

index.php in config.php-Datei entfernen 

  1. schreiben Sie von Ihrem Server auf.
5

versuchen Sie es hier. Es kann Ihnen helfen, da es für mich arbeitet.

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

geben Sie den Code in Ihre Root-Htaccess-Datei ein 

$config['index_page'] = '';

in deiner Konfigurationsdatei.

Bitte lassen Sie mich wissen, wenn Sie Probleme haben.

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

Schauen Sie sich diese Videos als Referenz an https://www.youtube.com/watch?v=HFG2nMDn35Q .

4
KH SolveCode

zuerst müssen Sie auf der Apache-Server-Engine umschreiben. Dieser Link hilft Ihnen dabei

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]

dies wird Ihre .htaccess-Datei sein Versuchen Sie es jetzt. Diese Einstellung funktioniert für mich.

3

Nun, alle diese Antworten sind gut, aber für einen Neuling (der zum ersten Mal erfolgt) sind diese verwirrend. Es gibt andere htaccess-Dateien, die sich im Controller befinden, aber wir müssen den htaccess im Hauptprojektordner bearbeiten oder hinzufügen. 

Dies ist Ihr Codeigniter-Ordner, in dem sich die Dateien wie Anwendung, System, Assets, Uploads usw. befinden.

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

Ändern Sie diese Datei wie folgt:

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

und ja, natürlich müssen Sie zwei Codezeilen in der Anwendung/config/config.php ändern 

//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";
3
Anand Pandey
  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.
2

sie können nach config\config.php file gehen und den index.php-Wert aus dieser Variablen entfernen

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

erstellen Sie eine .htaccess-Datei und fügen Sie diesen Code ein.

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

gute Chance

2
abbas hussen

Entwicklung und Produktion

    # 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]
2
cgwCode

Es sind nur drei Schritte erforderlich, um index.php aus der URL in Codeigniter zu entfernen

1) Erstellen Sie eine .htacess-Datei parallel zum Antragsinhaber und kopieren Sie einfach den folgenden 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) Ändern Sie $ config ['index_page'] in config.php im Anwendungsordner wie folgt:

$config['index_page'] = '';

3) Aktivieren Sie "rewrite_module" von Apache.

Starten Sie Ihren Apache neu und fertig.

Details: http://sforsuresh.in/removing-index-php-von-url-of-codeigniter-in-wamp/

1
Suresh Kamrushi

Ich denke, alle Ihre Einstellungen sind gut, aber Sie tun, um Ihre Htaccess-Datei zu verschieben, und fügen Sie Ihren Htaccess in Ihre Projektdatei ein 

Projektordner-> htaccess

und fügen Sie diesen Code zu Ihrem Zugriff hinzu

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

Sie können index.php von der URL entfernen, indem Sie die .htaccess -Datei im Basisverzeichnis Ihres Projekts erstellen 

RewriteEngine einschalten
RewriteCond $ 1! ^ (Index.php | Bilder | js | css | uploads | favicon.png
RewriteCond% (REQUEST_FILENAME)! -F
RewriteCond% (REQUEST_FILENAME)! -D
RewriteRule ^ (. *) $ ./Index.php/$1 [L]

speichern Sie diese Datei. Auch Ihre geänderte Datei in der Datei config.php ist richtig

$config['index_page'] = '';

Ich möchte erfolgreich laufen

0
Rabab Sh

Fügen Sie diese Codezeile in Ihre .htaccess-Datei ein:

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

Wo ist mein Projekt der Name Ihres Projektordners?.

Sie können mehr über CodeIgniter lesen oder die .htaccess-Datei hier herunterladen

0
Infolet.org

sie können die Datei application\config\config.php aufrufen und die index.php entfernen

 $ config ['index_page'] = 'index.php'; // lösche index.php 

Ändern

 $ config ['index_page'] = ''; 

0
Rafiqul Islam

Sie können index.php von der URL entfernen, indem Sie einen Code in .htaccess einfügen.

Dateipfad: 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]

Ich hoffe es funktioniert. 

0
Rokan Nashp

Folgen Sie diesen Schritten, um Ihr Problem zu lösen

1- Laden Sie die .htaccess-Datei hier herunter https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Ändern Sie den CodeIgnitor-Verzeichnisnamen in Zeile 5 . So wie mein Verzeichnisname abc ist (fügen Sie Ihren Namen hinzu)

3- Speichern Sie die .htaccess-Datei im Hauptverzeichnis (abc) Ihres Codeignitor-Ordners 

4- Ändern Sie das uri_protocol von AUTO in PATH_INFO in der Datei Config.php

Hinweis: Zunächst müssen Sie mod_rewrite in httpd.conf von apachi aktivieren, indem Sie die Kommentare entfernen

0
Salman Khan

wenn alle oben genannten Lösungen nicht funktionieren, befinden sich in Ihrem Projektordner zwei Dateien index.html und index.php. Benennen Sie index.html in index_1.html um und durchsuchen Sie Ihr Projekt.

0
Mohsin Shoukat

Mit 2 Schritten gelöst.

  1. Aktualisieren Sie 2 Parameter in der Konfigurationsdatei application/config/config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Aktualisieren Sie die Datei .htaccess im Stammordner
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

Neben diesen Antworten können Sie index.php einfach hinzufügen oder bearbeiten (falls bereits vorhanden). Zur Sicherheit möchten Sie index.php trotzdem deaktivieren, um die Dateien in Ihrem Website-Verzeichnis aufzulisten - und dann den Inhalt ändern 

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

Beachten Sie den Unterschied mit dem hinzugefügten "?" Zeichen nach ".php", insbesondere bei CodeIgniter:

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

vs.

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

Es hängt von mehreren anderen Dingen ab. Wenn dies nicht funktioniert, probieren Sie die andere Option!

0
eyal_katz

probieren Sie diese RewriteEngine an

        # 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>
0
Kashif

Verwenden Sie diesen Code. Ändern Sie die 2. Zeile, da Sie Ihren Ordnernamen haben. Wo index.php Datei und Ordner Anwendung, Systemordner liegen. Meistens treten Probleme aufgrund der zweiten Zeile auf. Wir konfigurieren nicht den Ordnernamen, in dem sich das Projekt befindet. Wichtig ist die 2. Zeile. Das Entfernen der index.php ist einfach. RewriteEngine auf 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]    

Wechseln Sie in die Datei controller/config.php. 

config ['index_url'] = '';

Referenz für weitere Studien. 

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

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

0

Nebensache: (optional)

Versuchen Sie, Ihren Apache neu zu starten, nachdem Sie den Status der Umschreibungsmaschine in vhosts als Rewrite ON aktualisiert haben.

Eine wichtige Sache zu beachten:

Überprüfen Sie in der Apache vhosts-Datei, ob Sie über diese Skriptzeile verfügen AllowOverride None Wenn ja, bitte diese Zeile entfernen/kommentieren.  

My vhosts-Dateiskript: (Vorher)

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

My vhosts-Dateiskript: (Nachher)

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

Ich stand vor dem gleichen Problem und hatte einen Tag lang Probleme, alle waren in Ordnung. Später, durch Versuch und Irrtum, fand diese Sache. Nachdem ich das entfernt hatte, wurde mein Job ausgeführt . Die URL sucht jetzt nicht nach index.php :)

0
Lalith Kumar