
Mein ideales Setup wäre, die Site eines aktuellen Kunden zu nehmen, eine .htaccess-Datei mit einem darin enthaltenen regulären Ausdruck hochzuladen, der mit der URI übereinstimmt, und wenn eine bestimmte Dateierweiterung gefunden wird, wird derselbe Pfad, aber mit einer geänderten Domäne verwendet.
dh.
Normaler Pfad:
http://www.domain.com/something/images/someimage.jpeg
http://www.domain.com/assets/js/jquery.js
Die Übersetzung von .htaccess würde das Obige in Folgendes umwandeln:
http://mycdn.other.com/something/images/someimage.jpeg
http://mycdn.other.com/assets/js/jquery.js
Ich habe stundenlang danach gegoogelt, aber ohne Erfolg. Auch hier geht es darum, Amazons CloudFront tatsächlich zu nutzen. S3 ist bereits auf der Website installiert, um Backups zu erstellen und Dateien mit s3fs zu speichern, aber das löst das Problem nicht, da S3 direkt und nicht CloudFront verwendet wird.
Antwort1
Getestet und funktioniert auf httpd-2.2.3-31.el5.centos
Umleitungsmethode:
RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [R]
Das R bewirkt, dass die Seite tatsächlich auf die neue Domäne umgeleitet wird, was möglicherweise nicht genau das ist, wonach Sie suchen.
Proxy-Methode:
RewriteEngine On
RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$ [NC]
RewriteRule (.*) http://www.google.com/$1 [P]
Das P wird einen Proxy auslösen (vorausgesetzt, Sie haben mod_proxy installiert), der dafür sorgt, dass der Inhalt von Ihrem Server kommt, anstatt umgeleitet zu werden. Dies führt dazu, dass Ihr Server mehr Arbeit hat und deutlich mehr I/O-Bandbreite erzeugt als eine Umleitung. Proxys sind teuer, aber sie stellen sicher, dass alles unter einer einzigen Domäne erscheint, anstatt auf einen Remote-Server oder ein CDN für Inhalte zuzugreifen.
Bearbeiten: Ich habe es aktualisiert, um request_URI anstelle von request_filename zu verwenden, sodass Dateien in Unterverzeichnissen, die nicht existieren, weiterhin als Proxy dienen/umgeleitet werden.