2009-08-03 13 views
1

Nur eine schnelle kleine Sache, aber ich komme nicht vorbei.mod_rewrite zum Überschreiben von Aufrufen zu HTML-Wurzel

Also, sagen Sie, Sie hätten in Ihren HTML-Dateien Verweise auf Bilder und CSS-Dateien, etwa so: < img src = "/ img/myimage.jpg"/>, und so weiter. Nun, wenn Sie eine Mod-Rewrite-Regel hinzufügen wollten, um diese Adressen auf etwas wie /subset/img/myimage.jpg abzubilden, wie würden Sie das tun?

Soweit ich konnte, konnte ich Pfade nicht überschreiben, die mit/begannen. Und wenn Sie schon dabei sind, wäre es nett, wenn es eine Regel gäbe, die diese Zuordnung für alle Dateianforderungen durchführen würde.

Danke!

Edit: Und noch etwas. Es gibt auch relative Pfade (generiert von tinyMCE), die wie folgt funktionieren "../../../../img/myimage.jpg". Ich bin mir nicht sicher, warum diese funktionieren, weil diese Pfade irgendwo unterhalb von public_html abgebildet werden. Jede Hilfe mit diesen würde auch geschätzt werden.

Antwort

0

Ahh! Entschuldige, dass ich dumm bin. Sie müssen natürlich Anforderungen bearbeiten, die dem Dokumentstamm im Stammverzeichnis zugeordnet sind. Sie sehen, ich arbeitete in einem Unterverzeichnis.

Die Tatsache, dass Pfade funktionieren, die unter public_html oder www verwaltet werden, verwaltet mich noch. Aber ich denke, dass extra "../" einfach ignoriert und dem Dokumentenstamm zugeordnet werden.

0

Versuchen Sie, diese Regel:

RewriteRule ^img/.* subset/$0 [L] 

Und nun zu Ihrer zweiten Frage: Relative URIs werden immer auf eine absolute URI aufgelöst, bevor sie an den Server gesendet werden. Daher wird der Client basierend auf dem Basis-URI ../../../../img/myimage.jpg auflösen (siehe RFC 2396, 5.2. Auflösen relativer Verweise auf die absolute Form). Daher erhält der Server immer einen absoluten URI-Pfad, den er an den Dokumentstammpfad anhängen kann, um den angeforderten URI-Pfad dem Dateisystem zuzuordnen.

+0

Und ich vermute, dass es überschüssige "../" ausziehen wird? – JHollanti

+0

Ja, nutzlos '../' sind ausgezogen. Probieren Sie es selbst aus: http://example.com/../../../../../../../../ – Gumbo

Verwandte Themen