
Mithilfe von .htaccess
Regeln 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, RewriteBase
aber 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.xml
die 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, RewriteBase
muss entweder überhaupt nicht (bevorzugt) oder auf gesetzt sein RewriteBase /
.
Die $0
Rückreferenz erspart einfach Wiederholungen - sie bezieht sich auf den gesamten URL-Pfad, der mit demRewriteRule
Muster, dh. specificfile.xml
.
.htaccess
Beachten Sie, dass, wenn Ihre Datei bereits mod_rewrite-Direktiven enthält,Die Reihenfolge ist wichtig. (z. B. müssen externe/kanonische Weiterleitungen zuerst erfolgen.)