RewriteRule erstellen 500 Internal Server Error
Habe ich Folgendes in meine .htaccess-Datei:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^directory/(.*)$ directory/index.php?id=$1
Was ich versuche zu erreichen ist:
Wenn die URL www.mydomain.com/directory/10
besucht, wird die Seite www.mydomain.com/directory/?id=10
ist das im browser angezeigt wird zu verändern, ohne das Aussehen der URL.
Der obige code erstellt eine 500 Internal server error wenn.
Weiß jemand, wo ich bin mache ich falsch?
- Ein 500-Fehler bedeutet in der Regel ein Fehler protokolliert wurde, irgendwo. Finden Sie Ihre Apache-und PHP-Fehler-logs und sehen, was der tatsächliche Fehler ist.
- Der 500-Fehler geliefert, um den browser sollte haben Sie darüber informieren, dass die vollständige Fehlermeldung wäre in den server-logs. Lesen Sie Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren code garantiert zu generieren 500 internal server error, weil es verursacht unendliche Schleife. Grund dafür ist, dass Sie Ihre übereinstimmenden URI-pattern ist:
^directory/(.*)$
Welche Spiele Ihre URLs vor und nach schreibt. Und sobald es erreicht max-internen rewrite-limit Apache wirft 500 internal server error und Kautionen aus.
Ändern Sie Ihren code zu diesem:
Obige code hat eine extra
RewriteCond %{REQUEST_FILENAME} !-f
wird, stellen Sie sicher, dass die anschließende Ausführung der RewriteRule nach dem ersten mal seit/directory/index.php
eine gültige Datei.Ich habe das gleiche Problem und festgestellt, dass "rewrite" - Modul ist noch nicht aktiviert in meinem Fall. So brauche ich, um es zu aktivieren und dann neu starten apache server:
Hoffe, das wird niemandem helfen.
Sollten Sie versuchen, hinzufügen einer forward-Schrägstrich auf der Vorderseite:
Habe ich dabei ertappt worden, mit die vor.
Alternativ verwenden Sie die RewriteLog und RewriteLogLevel auf debug und den Blick in die Apache error und access logs für weitere info:
Verlassen, dass eine log-Datei in deinem apache log-Verzeichnis an. In meinem Fall ist
/var/log/apache
The requested URL /directory/10 was not found on this server.
Irgendwelche Ideen?Wenn Sie mit CodeIgniter und der Fehler ist Probleme 500. Befolgen Sie die Lösung.
So löschen Sie das segment "index.php" von URLs CodeIgniter, müssen Sie 2 Dinge. Die erste ist die Bearbeitung der
/system/application/config/config.php
- Datei, ändern Sie den Wert von index_page Politik zu leeren:Der zweite Schritt ist das erstellen einer Datei
.htaccess
... Und das ist es! Ab jetzt werden die URLs der Website/system gemacht mit CodeIgniter nicht mehr den thread (namens "ärgerlich" von einigen) "index.php".