2017-03-22 1 views
0

Ich bin auf einem einfachen Routing-System zu arbeiten, und ich brauche eine RewriteRule zu machen, wo alles (keine Ausnahme als Abfrageparameter zu meiner Haupt-PHP-Datei übergeben wird.Wie kann ich jede Art von String in Htaccess neu schreiben?

jedoch^(. +) $ Und^(. *) $ scheint nicht zu funktionieren. Die einzige Sache, die mit ihnen zurückgegeben wird, ist '/index.php'.

Das einzige, was scheint zu funktionieren ist^([a-zA-Z0- 9/_-] *) $ usw., aber die Sache ist: Ich möchte, dass dieser Ausdruck allen Unicode-Zeichen entspricht, und ich nehme an, dass ein Ausdruck, der dies manuell ausführt, sehr langsam und unelegant wäre. .. warum funktionieren diese angeblich offensichtlichen Ausdrücke nicht richtig? ly?

Vielen Dank im Voraus.

RewriteEngine on 
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA] 
+0

@anubhava auch die Wurzel/URL funktioniert nicht. – JoeTheMan

+1

Lassen Sie mich klarstellen: Es wird nichts in den 'query'-Query-String-Parameter übergeben, außer' index.php '. das gilt für jede URL, die ich eingeben möchte. – JoeTheMan

Antwort

0

Sie können diese Regel verwenden:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php?path=%{REQUEST_URI} [L,QSA] 
+0

Ja, vielen Dank! Warum funktioniert das? – JoeTheMan

+0

Es ist wegen 2 'RewriteCond' Zeilen darüber, dass die Regel die Ausführung von zweimal, die für Ihre Regel stattfand stoppen. Das zweite Mal 'REQUEST_URI' wird zu' index.php'. Daher wird Ihr 'Pfad' Parameter als' index.php' erhalten. – anubhava

+0

Auch wenn es funktioniert, [Sie können die Antwort als akzeptiert markieren, indem Sie auf ** Häkchen ** oben klicken -links zu dieser Antwort] (http://meta.stackexchange.com/a/5235/160242) – anubhava

Verwandte Themen