mod_rewrite => Pfad ändern

...komplette Frage anzeigen

2 Antworten

Rückfrage, weil ich vermute, daß wir hier eine Verwirrung reinkriegen könnten:

Wenn ich die Frageinhalte wörtlich nehme, dann müßte es bei Dir so sein, daß Deine Bild-Ressourcen (oder auch anders?) bereits von Wordpress unter verschiedenen Pfaden ausgeliefert wurden, neuerdings aber unter verschiedenen Domains ausgeliefert werden sollen, jedoch nur aus historischen Gründen (in Links oder älteren Inhalten) des öfteren ein Pfad wie der eingangs erwähnte (mit Pfadverzweigung statt Domainverzweigung) beim Webserver aufschlägt. Eventuell hattest Du einen switch von Multi-Pfad auf Multi-Domain gemacht? Und möchtest jetzt im nachhinein die Erinnerungen der Besucher und Suchmaschinen, die noch ältere Dokumente kennen, zurechtbiegen?

Du brauchst also eine Umleitung von "xy.domain.tld/pfad/" auf "w3.anderedomain.tld/", wo individuellen Pfaden individuelle "anderedomain"s zugeordnet sind, richtig?

Wordpress arbeitet doch mit dynamisch umgeschriebenem htaccess...

Da müßte für jeden registrierten User eine individuelle rewrite-Zeile rein!

Gib erstmal ne Rückkopplung...

Antwort bewerten Vielen Dank für Deine Bewertung
martin1502 27.03.2013, 10:20

Naja, ich versuch's mal anders auszudrücken.

Ich binde auf meiner Seite Bilder von URLs wie zum Beispiel: images120.externeDomain.tld/001104/8/5cc452f9e2bac78605bfbdda68.jpg ein. Diese Bilder sollen nun unter meiner Domain URL erreichbar sein, also unter: www.meineDomain.de/images/5cc452f9e2bac78605bfbdda68.jpg

Die Sache mit dem MultiDomainwordpress wollte ich nur deshalb erwähnen, da meineDomain.de auch meineAndereDomain.de lauten kann und auf die gleiche htaccess zugreift.

0
WhiteGandalf 27.03.2013, 11:59
@martin1502

Dann gehts bezüglich der verschiedenen Wordpress-Domains also nur darum, die "transparent" zu machen (also faktisch einfach zu ignorieren)...

Die Zugriffe kommen also alle im selben Wordpress-Verzeichnis "vorbei" (egal, welche Wordpress-Domain) und dabei alle an derselben htaccess.

Und alle Zugriffe, die auf ein bestimmtes Verzeichnis zeigen (ohne die Domain zu beachten) (und eventuell: die von einem bestimmten Typ sind), sollen an eine fremde Domain weitergeleitet werden.

Dann sollte das doch sogar mit einer einzigen Regel zu erschlagen sein, oder?

RewriteRule "^/images/([0-9a-f]*\.(gif|jpg|jpeg|png))$" "http://images120.externeDomain.tld/001104/8/$1" [NE,L,PT,QSA]
1
martin1502 31.03.2013, 00:15
@WhiteGandalf

Hallo,

danke schonmal für den Super-Denkansatz!

Ich habe mal ein wenig rumprobiert und bin nun bei diesem Ergebnis:

RewriteRule ^(images[0-9]+)/([^/]+)/(.+)$ http://$1.externeDomain.tld/$2/$3 [L]

nun habe ich noch ein (hoffentlich kleines) Problem. Wenn ich nun die "neue" Bildurl aufrufe - also meinedomain.tld/images120/bla/blub.jpg bekomme ich immer einen redirect. Gibt es ein Flag oder eine Condition oder sowas, bei der ich die neue URL aufrufen kann und das Bild unter meiner Domain auch angezeigt wird?

Danke vorab und frohe Feiertage, Martin

0
WhiteGandalf 31.03.2013, 17:34
@martin1502

Aus der Hüfte geschossen würde ich sagen: Neee, das beherrscht der Webserver nicht - weil er dazu die Datei temporär zu sich abrufen und dann unmittelbar an den abfragenden Browser ausliefern müßte. Solange die Dateien lokal greifbar sind, geht das.

Aber beim Durchsehen der Flags sehe ich gerade, daß es mit einem Apache, der auch als Proxy eingerichtet ist, klappen könnte (mit proxy-Flag in der rewrite-rule):

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags

Allerdings habe ich eine solche Konfiguration noch nicht selbst ausprobiert.

1
martin1502 31.03.2013, 21:53
@WhiteGandalf

Exakt das ist es! Mit dem Flag P hinten dran klappt es prima. Tausend Dank für deinen Rat :)

0

Hallo Martin,
hab's nicht getestet, versuche mal folgendes:

RewriteCond %{HTTP_HOST} xy.domain.tld [NC]
RewriteRule ^([0-9]+)/([0-9]+)/(.*)\\\\.jpg$ w3.anderedomain.tld/$1/$2/$3.jpg [R=301,L,NC]

Hierbei handelt es sich um eine permanente Weiterleitung (Redirect 301).
In der RewriteRule müsstest noch das http:// vor w3.anderedomain.tld machen. Ging hier nicht.

Gruß
Wolfgang

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?