/ / Apache2 - freundliche URLs - .htaccess, URL, Apache2

Apache2 - freundliche URLs - .htaccess, URL, Apache2

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

Es 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.confund 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 der sites-enabled Ordner, also müssen Sie den Ordner finden, der die Dinge für diese Site tatsächlich ändern wird.) Ändern Sie ihn in AllowOverride FileInfo (wenn Sie nur noch schreiben müssen) oder AllowOverride All (wenn Sie beabsichtigen, Ihre .htaccess für andere Dinge.) Eine vollständige Beschreibung von AllowOverride ist bei http://httpd.apache.org/docs/current/mod/core.html#allowoverride

  • Stellen 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 Sie a2enmod rewrite und starten Sie Ihren Apache-Server neu.