.htaccess URL Rewrite Scheitern - Die angeforderte URL wurde nicht auf diesem server
Habe ich eine sehr einfache rewrite-Regel. Meine gesamte .htaccess-Datei ist wie folgt:
RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ /index.php?page=$1 [L,NC]
Diese funktioniert perfekt auf meinem Entwicklungsrechner läuft Apache. Es funktioniert nicht, aber auf meinem Entwicklungs-Rechner mit Apache (mod_rewrite aufgelistet in der PHP-info unter apache2handler). Noch funktioniert es auf dem live-server, wobei ich denke, dass Windows ausgeführt wird.
Habe ich versucht, indem die folgenden:
RewriteBase /
Ich bin kein mod_rewrite-Assistenten und ich bin sicher, es ist eine sehr einfache Lösung, aber es entzieht sich mir momentan und immer wieder erhalten Sie eine 404 nicht gefunden Fehler.
Eine Sache, die sich auf die beiden Umgebungen, in denen dies nicht funktioniert, ist, dass die Website ist nicht in der Wurzel der URL. So ist es zum Beispiel http://localhost/site
und www.example.com/site
Habe ich versucht verschiedene syntax-Anpassungen in der .htaccess-Datei, und auch das hinzufügen der site auf der Basis:
RewriteBase /site
- Versuchen Sie nur, dass die Regel ^.*$ für das Debuggen
- Das scheint nicht zu keinen Unterschied machen. Ich habe auch versucht, schriftlich der Regel explizit. Zum Beispiel
ReWriteRule ^home /index.php?page=home [L,NC]
- Auch, welche URL geben Sie in den web-browser? Sie würden den Typ www.example.com/site/foo für diese Arbeit vielleicht. Sie können gehen Sie in Ihr Apache-logs und suchen error_log zu sehen, welche Seite genau ist 404 ' Ing.
- Ja. Zum Beispiel ich gehen würde, um
http://localhost/site
Die home-Seite lädt korrekt. Wenn ich zu gehen, umhttp://localhost/site/home
zum Beispiel, es funktioniert nicht. Doch dies funktioniert auf mindestens eine Maschine also, die links müssen richtig eingerichtet werden. - In der Apache-ERROR-LOGS bekomme ich diese:
[Fri Mar 08 20:58:35 2013] [error] [client 127.0.0.1] File does not exist: C:/localhost/site/home [Fri Mar 08 20:58:35 2013] [error] [client 127.0.0.1] File does not exist: C:/localhost/favicon.ico
- Oh, bedeutet das, dass Apache nicht einmal Lesen Ihre .htaccess-Datei für diese Anforderung. Entweder im falschen Verzeichnis oder mod_rewrite ist nicht wirklich aktiviert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen der 'RewriteBase /site' und versuchen, das entfernen des /vor index.php
Der Schrägstrich sollte nicht sein, es mit zu verwenden .htaccess
home
ist nicht ein Verzeichnis. Es identifiziert die Seite, so sollte umgeschrieben werden, umindex.php?page=home