So laden Sie die angeforderte Datei aus einem Unterverzeichnis, ohne die Basis neu zu schreiben

So laden Sie die angeforderte Datei aus einem Unterverzeichnis, ohne die Basis neu zu schreiben

Mithilfe von .htaccessRegeln versuche ich, eine Datei aus einem Unterverzeichnis zu laden und dabei die Front-End-URL unverändert zu lassen, sofern sowohl die Domäne als auch der Dateipfad den Kriterien entsprechen.

Beispiel einer URL:

example.com/specificfile.xml

Die Datei selbst befindet sich in einem Unterverzeichnis, das nicht das öffentliche Webstammverzeichnis ist:

/var/www/feeds/specificfile.xml

Beim Versuch, dies zu googeln, erhalte ich viele Ergebnisse, RewriteBaseaber das ist nicht das, wonach ich suche. Ich muss das „Basisverzeichnis“ nur für eine einzige Datei „umschreiben“ und die Frontend-URL beibehalten.

Antwort1

Angenommen /var/www, es handelt sich um das Dokumentstammverzeichnis. Um /feeds/specificfile.xmldie Anforderung zu erfüllen /specificfile.xml, müssen Sie mit mod_rewrite in der Stammdatei Folgendes tun .htaccess:

RewriteRule ^specificfile\.xml$ feeds/$0 [L]

Damit dies funktioniert, RewriteBasemuss entweder überhaupt nicht (bevorzugt) oder auf gesetzt sein RewriteBase /.

Die $0Rückreferenz erspart einfach Wiederholungen - sie bezieht sich auf den gesamten URL-Pfad, der mit demRewriteRule Muster, dh. specificfile.xml.

.htaccessBeachten Sie, dass, wenn Ihre Datei bereits mod_rewrite-Direktiven enthält,Die Reihenfolge ist wichtig. (z. B. müssen externe/kanonische Weiterleitungen zuerst erfolgen.)

verwandte Informationen