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?
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]
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
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
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]
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
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]
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.
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'] = ''
.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]
veränderung
$config['index_page'] = '';
index.php
in config.php
-Datei entfernen
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.
+ 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 .
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.
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";
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.
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
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]
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/
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]
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
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
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'] = '';
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.
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
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.
Mit 2 Schritten gelöst.
- Aktualisieren Sie 2 Parameter in der Konfigurationsdatei application/config/config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
- 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');
?>
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!
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>
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
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 :)