Ich habe eine htaccess-Datei in meinem Hauptverzeichnis, die alle Verzeichnisse der obersten Ebene auf eine PHP-Datei umleitet.
-> /Loch
würde gehen zu/profile.php?username=Loch
Aber ich habe auch ein Unterverzeichnis, nennen wir estest
Ich brauche eine Regel test
, die besagt: „Alle Unterpfade meines Verzeichnisses sind eigentlich GET-Variablen.“
Zum Beispiel die Verlinkung zu/test/hello/hi
Sollte eigentlich gehen zu/test/receiver.php?dataset=hello&action=hi
Wenn ich jedoch die folgenden Regeln innerhalb einer htaccess-Datei im /test/
Verzeichnis verwende, funktioniert es auf diese Weise nicht (ich erhalte einen 500-Fehler).
RewriteBase /
RewriteEngine On
RewriteRule ^(.*?)/(.*?)/?$ /receiver.php?dataset=$1&action=$2
RewriteRule ^(.*?)/?$ /receiver.php?dataset=$1
Ich hoffe, ich habe genügend Informationen bereitgestellt. Bitte helfen Sie! Danke.
Antwort1
Ihre regulären Ausdrücke sind ungültig. *
und ?
sind beide Quantifizierer, die auf das vorherige Zeichen angewendet werden und daher *?
keinen Sinn ergeben. Sie möchten wahrscheinlich Folgendes:
RewriteRule ^(.+)/(.+)/?$ /receiver.php?dataset=$1&action=$2
RewriteRule ^(.+)/?$ /receiver.php?dataset=$1