Lighttpd-Umschreibregel für das Flight PHP-Mikroframework

Lighttpd-Umschreibregel für das Flight PHP-Mikroframework

Ich verwende das Flight PHP-Mikroframework. Es enthält einen eigenen Router und erfordert, dass der Server Anforderungen in die Datei index.php umschreibt.

Es enthält Umschreibregeln für Apache und Nginx, aber ich habe Pech, da ich in der Produktion lighttpd verwende und kein wirkliches Interesse daran habe, das zu ändern.

Ich möchte nicht der Typ sein, der einfach sagt: „Geben Sie mir die Lösung …“ Aber im Ernst, kann mir jemand helfen? Ich habe keine Ahnung, wie ich Lighttpd-Anfragen umschreiben soll.

Die Apache-Konfiguration sieht folgendermaßen aus:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

Und die Nginx-Konfiguration so:

server {
    location / {
        try_files $uri $uri/ /index.php;
    }
}

Meine eigene Lighttpd-Konfiguration sieht derzeit so aus:

$HTTP["host"]  == "zyx.abc.dk"{
        server.document-root = "/var/www/app1/zyx"
        accesslog.filename         = "/var/log/lighttpd/zyx-log.log"
        url.rewrite-once = ( "(.*)" => "/index.php" )
}

Aber es funktioniert nicht. Wie kann ich die Subdomain wie oben beschrieben umschreiben, damit Flight PHP funktioniert? Ich mag das Framework, daher wäre ich ziemlich traurig, wenn ich es ändern müsste.

Danke Leute! :)

Antwort1

  • Ihre Umschreiberegel hat kein "QSA" ausgeführt - sie hat die Abfragezeichenfolge gelöscht
  • Ihr Umschreiben wurde auch für vorhandene Dateien ausgelöst (nicht übereinstimmend !-fund !-d)

Das Folgende sollte die Abfragezeichenfolge beibehalten und nur ausgelöst werden, wenn der angeforderte Pfad keine normale echte Datei ist (sondern für Verzeichnisse ausgelöst wird, die nicht mit dem Apache übereinstimmen !-d– obwohl ich behaupten würde, dass dies !-dwahrscheinlich ein Fehler in der Apache-Konfiguration ist).

url.rewrite-if-not-file = ( "(\?(.*))?" => "/index.php$1" )

Sie können auch einen verankerten regulären Ausdruck verwenden:

url.rewrite-if-not-file = ( "^.*(\?(.*))?$" => "/index.php$1" )

verwandte Informationen