Ich verwende diesen Code zum Erstellen von freundlichen URLs:
rewriteengine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Es sollte funktionieren, damit ich gehen könnte http://www.mywebsite.com/test aber wenn ich meine url gehe, sagt es einfach 404 Not Found
In der Protokolldatei wird jedoch kein Fehler angezeigt.
Ich verwende Apache2 unter Debian x86_64 und frage mich, ob ich die Einstellungen ändern muss, damit freundliche URLs funktionieren.
Antworten:
1 für die Antwort № 1Es gibt viele Möglichkeiten. Hier sind einige (einige von ihnen aus SmartWebDeveloper.com):
Stellen Sie sicher, dass
.htaccess
Datei ist korrekt benannt. Stellen Sie sicher, dass Sie das nicht vergessen haben.
am Anfang, und dass der Dateiname alles in Kleinbuchstaben ist.Stelle sicher
AllowOverride
richtig eingestellt ist. Wenn Sie in Ihre Konfigurationsdateien schauen (httpd.conf
und möglicherweise andere Konfigurationsdateien in der/etc/apache2/
Verzeichnis) können Sie eine Zeile wie folgt sehen:AllowOverride None
. Diese Zeile verhindert Ihr.Htaccess-Datei vor Änderungen. (Beachten Sie, dass diese Zeile in der Serverkonfiguration an mehreren Stellen vorhanden sein kann, einschließlich der Hauptkonfiguration und der Web-Root-Verzeichnis-Konfiguration (wahrscheinlich in/etc/apache2/sites-available/default
) und alle VHost-Konfigurationsdateien in dersites-enabled
Ordner, also müssen Sie den Ordner finden, der die Dinge für diese Site tatsächlich ändern wird.) Ändern Sie ihn inAllowOverride FileInfo
(wenn Sie nur noch schreiben müssen) oderAllowOverride All
(wenn Sie beabsichtigen, Ihre.htaccess
für andere Dinge.) Eine vollständige Beschreibung vonAllowOverride
ist bei http://httpd.apache.org/docs/current/mod/core.html#allowoverrideStellen Sie sicher, dass das Überschreibungsmodul aktiviert ist. Wenn Ihre Umschreibungskonfiguration eingeschlossen ist
<IfModule mod_rewrite.c>
und</IfModule>
Tags oder wenn Ihr Apache so konfiguriert ist, dass kein Bericht erstellt wird.htaccess
Fehler, Sie werden nirgendwo sehen, dass das Modul deaktiviert ist. Um es zu aktivieren, verwenden Siea2enmod rewrite
und starten Sie Ihren Apache-Server neu.