Das funktioniert leider nicht in XAMPP Virtualhost.
Aber wenn ich in den Stammordner gehe und den Befehl PHP -S 127.0.0.1:8080 oder einen anderen Port ausführe, funktioniert das Routing-System und die .htaccess-Datei auch funktioniert.
Das beweist, dass mit meinem PHP-Code nichts falsch ist.
Zur Klarstellung: Ich kann den virtuellen Host erreichen und es funktioniert.
Aber wenn ich /control hinzufüge, heißt es „Objekt nicht gefunden“, weil control.php nicht existiert. Aber es sollte mich zur Kontrollseite führen, da dort die Anfrage an index.php gesendet werden sollte.
Das Entfernen der Erweiterung .php funktioniert, also funktioniert /client, weil es eine Datei mit dem Namen client.php gibt. Die .htaccess-Datei wird dabei also nicht ignoriert.
Ich habe auch versucht, ein paar zufällige Dinge in die .htaccess-Datei einzugeben und zu sehen, ob es zu einem Serverfehler führen würde, und das ist tatsächlich passiert. Das beweist also auch, dass der Virtualhost die .htaccess-Datei nicht ignoriert.
Meine .htaccess-Datei:
Code: Select all
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /index.php?q=$1 [NC,L,QSA]
Code: Select all
DocumentRoot "C:/xampp/htdocs/example"
ServerName example.com
ServerAlias www.example.com
AllowOverride All
Mit freundlichen Grüßen
EDIT 1
Ich habe zu httpd-vhosts.conf die Zeile DirectoryIndex index.php hinzugefügt und sie sieht so aus:
Code: Select all
DirectoryIndex index.php
AllowOverride All
Nach einigen Tests habe ich herausgefunden, dass die Routing-Regel für /login funktioniert.
Meine index.php-Datei:
Code: Select all
Mobile version