Ich habe ein PHP-Skript heruntergeladen, das mit CodeIgniter geschrieben wurde. Wenn ich es vom localhost aus ausführen lasse, wenn ich in den Admin-Ordner gehe, wird wieder localhost angezeigt. Wenn er von meinem Webhost aus ausgeführt wird, wird ein 500-Server-Serverfehler angezeigt.
Ich betreibe die Site von http: // localhost/myproj . Es funktioniert. Wenn ich dann versuche, auf die Admin-Seite zu gelangen, die sich unter http: // localhost/myproj/administrator befindet, wird ein 500-Server-Serverfehler ausgegeben.
Ich habe hier gelesen, dass dies möglicherweise an einem falschen Code in der .htaccess-Datei liegt. Dies ist meine gegenwärtige .htaccess-Datei
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php
Bitte hilf mir. Ich weiß, dass es ein sehr kleines Problem sein kann, aber ich kann den Fehler nicht finden.
Das Problem mit 500 Fehlern (mit CodeIgniter), mit anderen Apache-Einstellungen, zeigt 500 Fehler an, wenn ein Fehler mit der Konfiguration von PHP auftritt.
So kann es 500 Fehler mit CodeIgniter auslösen:
Bitte überprüfen Sie Ihre Apache-Fehlerprotokolle. Dort sollten einige interessante Informationen enthalten sein.
Nur für den Fall, dass jemand anderes über dieses Problem stolpert, habe ich ein älteres CodeIgniter-Projekt geerbt und hatte Schwierigkeiten, es zu installieren.
Ich habe eine Menge Zeit damit verschwendet, eine lokale Installation der Site zu erstellen, und habe alles versucht. Am Ende war die Lösung einfach.
Das Problem ist, dass ältere CodeIgniter-Versionen (wie 1.7 und darunter) nicht mit PHP 5.3 funktionieren. Die Lösung ist, zu PHP 5.2 oder etwas älterem zu wechseln.
Sie versuchen, index.php von den URLs Ihrer Website zu entfernen, richtig?
Setzen Sie Ihren $config['uri_protocol']
auf REQUEST_URI
anstelle von AUTO
.
kommentar in httpd.conf (Apache-Konfigurationsdatei) entfernen:
LoadModule rewrite_module modules/mod_rewrite.so
Versuchen Sie dies mit Ihrer .htaccess-Datei:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Ich weiß, dass ich zu spät komme, aber das wird jemandem helfen.
Überprüfen Sie, ob das Überschreibungsmodul aktiviert ist .
Wenn nicht, aktivieren Sie die Umschreibungs-Engine und starten Sie den Server neu.
Sudo a2enmod rewrite
Sudo service Apache2 restart
Immer wenn ich CodeIgniter in einem Unterverzeichnis ausführte, setze ich die Variable RewriteBase
darauf. Setzen Sie es als /myproj/
anstelle von /
.
Dies ist wahrscheinlich nicht mehr relevant für diesen Thread, aber hoffentlich hilfreich für jemanden. Ich hatte 500 Fehler in der letzten Stunde, da ich einen Controller hatte, der ein Array zurückschickte, das nicht von der PHP-Version unterstützt wurde (beschissener) Server. Scheint trivial, hatte aber die Kennzeichen eines Codeigniter-Fehlers.
Ich musste verwenden:
class emck_model extends CI_Model {
public function getTiles(){
return array(...);
}
}
Anstatt
class emck_model extends CI_Model {
public function getTiles(){
return [...];
}
}
Prost
Das funktioniert gut für mich
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule >
Stellen Sie sicher, dass Ihre Stammdatei index.php
Die richtige Berechtigung hat. Die Berechtigung muss 0755
Oder 0644
Sein.
wenn der Wampserver Version 2.5, dann ändern Sie die Apache-Konfiguration als
httpd.conf (Apache-Konfigurationsdatei): Von
#LoadModule rewrite_module modules/mod_rewrite.so**
Löschen Sie die #
LoadModule rewrite_module modules/mod_rewrite.so**
das funktioniert gut für mich