• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

stamm-relative links in dokument-relative umwandeln

planet4

New member
hallo,

ich hab zwar nicht viel Hoffnung, aber vielleicht kennt ja doch jemand einen Ausweg aus dem Problem:
gibt es im Dreamweaver eine Möglichkeit, alle in einem Web-Projekt vorhandenen
stamm-relativen Links in dokument-relative umzuwandeln??

Das Projekt ist ziemlich groß, so dass man ewig beschäftigt wäre, wollte man
es per Hand ändern; die Seiten-Struktur ist sehr verschachtelt, so dass "Suchen-und-ersetzen" auch
nicht hilft...

man hat also ganz verschiedene Pfade, die man ersetzen müsst, z.B.

"/Kontakt/index.php"
"/Ordner1/Ordner2/seite_xy.htm"
"/images/bild.jpg"

leider kann man ein solches Projekt, wenn man dran arbeitet, nur im Dreamweaver anschauen
(sehr wahrscheinlich ist es auch im DW erstellt worden), ich kann es auch nicht im apache
unter htdocs ansehen :(

hat jemand irgendeinen Tipp für mich?

planet4.
 
Hi,

dein Link nutzt mir leider nicht viel, da geht es ja um die Umwandlung von relativen Links in absolute.

Das Problem ist, dass es sich um stamm-relative handelt, die ich gerne im HTML-Dokument selbst ersetzt hätte,
eigentlich egal ob durch relative oder absolute. (außer auf Seiten, die mit Dreamweaver erstellt worden sind
ist mir das auch noch nie begegnet)

Danke trotzdem,
planet4.
 
Was heisst stamm-relativ und dokument-relativ? Und steht da irgendwas von base href oder so?
 
Herzlichen Glückwunsch erstmal :)

also dokument-relativ: das, was man normalerweise als "relativ" bezeichnet,
vom Dokument aus relativ gesehen, z.B.:
ich befinde mich im Ordner zwei, unterhalb des Hauptverzeichnisses (www.xyz.de/zwei),
verlinke zum Ordner images, der auf gleicher Ebene liegt:
"../images/bild.jpg" (www.xyz.de/images)

das Gleiche stammrelativ:
"/images/bild.jpg"

das bedeutet, alle Links werden vom Stammordner aus gesehen (den Dreamweaver in seiner
Definition der Site anlegt) angegeben

mit base href hat das wohl eher nix zu tun.

planet4.
 
Aber der Document-root kann doch nur auf dem Server festgelegt werden, oder? Ich versteh dein Problem noch nicht ganz...
 
klar, in der config des apache kann ich document_root festlegen.
das ist dann z.B. e:/apache/htdocs

in htdocs liegen die verschiedenen Web-Projekte.

ich kann jetzt document_root nicht ändern auf:
e:/apache/htdocs/xyz
nur weil ich dieses eine Projekt xyz mit den stamm-relativen Links hab....

ich glaube inzwischen, dass das eine Dreamweaver-spezifische Sache ist.
ich hasse Dreamweaver.
aber dieses Projekt kann man jetzt wirklich nur im DW bearbeiten, wenn man
die Änderungen auch anschauen will.

planet4.
 
mod_rewrite ist (leider) keine Lösung. mod_rewrite gaukelt ja quasi dem Client nur vor,
die url würde anders aussehen (mal vereinfacht gesagt)

Hier geht es aber um sämtliche in allen Dateien vorhandene Links, die eben in dieser
verflixten "stamm-relativen" Art und Weise angegeben sind.

planet4.
 
Ja, aber der Client generiert ja aus den relativen Angaben in deinem Quelltext die absoluten Pendants dazu. Anschliessend schickt er seine Fassung des absoluten Pfads an den Server um ihm zu sagen, welche Datei er haben möchte. Durch mod_rewrite wäre das meiner Meinung schon lösbar.
 
...kann ich mir jetzt gerade nicht vorstellen, wie das funktionieren soll
Beispiel:
mein Web-Projekt liegt im Ordner "Webseite", auf der index.htm sind z. B. diese Links:
HTML:
<img src="/images/bild.gif" width="326" height="80" border="0"><br>
<a href="/unternehmen/">Unternehmen</a><br>
<a href="/planung/">Planung</a><br>
<a href="/projekte/stadtxyz/seite3.htm">Stadtxyz</a>
wenn ich jetzt die Seite öffne und auf einen Link klicke, sieht der Pfad so aus:
"http://localhost/unternehmen/" denn mein apache "denkt": "mein Stammverz. ist
localhost, also beginne ich hier" (richtig müsste es natürlich heißen:
"http://localhost/Webseite/unternehmen/"
Bilder auf der Seite werden auch nicht angezeigt, weil der Pfad zu den Bildern nicht stimmt.

Kann mod_rewrite daran wirklich etwas ändern?

[sorry, HTML steht alles in einer Zeile, kann ich nix für :) ]

planet4.
 
hallo jeko,

hab das jetz mal gerade auf meinem localhost probiert: Internal Server Error
Fehlermeldung im logfile:
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error.
Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary., referer: http://localhost/


was bedeutet das?

planet4.
 
Code:
RewriteEngine on
RewriteRule ^Webseite/(.*)?$ Webseite/$1 [L]
RewriteRule ^([/-0-9a-z]*)$ Webseite/$1 [L]
 
das erzeugt wieder obige Fehlermeldung, einen endlos-Loop, siehe auch hier
ich kann nicht so gut englisch, dass ich das jetzt alles auf Anhieb verstehe, aber ich glaub,
mod_rewrite ist da keine Lösung, ich müsste ja auch alle anderen Projekte, die
auf localhost liegen, ausschließen von der Umleitung...

Danke trotzdem! :)

planet4.
 
Achso. Ja, ich glaub jetzt seh ich was du meinst, und das mein Rewrite oben Quatsch ist, auch :).

Mhm... Und wieso nicht alle in einen Ordner namens Webseite packen? Jetzt wo ich das so schreib, denk ich ich hab dein Problem immer noch nicht verstanden. Entschuldige.
 
... macht nix, aber ich will mich jetzt mit meinen Erklärungen nicht wiederholen...

dieses Problem liegt ja nur bei diesem einen Projekt vor, das mal irgendjemand in Dreamweaver erstellt hat
und dabei diese "stammrelativen" Verlinkungen benutzt hat. Online stellt sich dieses Problem nicht, weil ja
z.B. "www.webseite.de" immer in den Stammordner führt - wenn man aber lokal die Seite aufruft,
liegt sie natürlich in ihrem eigenen Ordner "webseite" mit anderen Ordner zusammen unter localhost (der ja hier "Stammordner" ist)

die einzige, arbeitsintensive Lösung ist eigentlich, alle Pfade herauszusuchen und zu ändern...

planet4.
 
Aufspielen auf Webserver und dann mit einem Tool wie WebDown herunterladen, dabei Links umrechnen lassen, fertig!
 
Zurück
Oben