Styles, Bilder und JavaScript funktionieren nicht

Eines der wichtigsten Anwendungsgebiete von mod_rewrite ist das umschreiben von dynamischen in statische URLs um "suchmaschinenfreundliche URLs" zu erzeugen. Aber was ist besser fürs Ranking? http://www.url.com/12_2.htm, http://www.url.com/url,12,2.htm oder doch lieber http://www.url.com/12/2/url/ Fragen zum URL-Design werden hier diskutiert.

Moderator: Super-Mod

Styles, Bilder und JavaScript funktionieren nicht

Beitragvon rknadmin » 15.07.2009 13:34

Ich arbeite mit einem CMS, dass die Seiten natürlich dynamische erzeugt, nach dem Schema: domain.de/projektname/index.php?id=123.

Nun soll die URL wie folgt aufgebaut/dargestellt werden werden:

domain.de/bereich1/unterbereich1.1/id/idwert/
domain.de/bereich1/unterbereich1.2/id/idwert/
domain.de/bereich1/unterbereich1.3/unterbereich1.3.1/id/idwert/
domain.de/bereich2/unterbereich2.1/id/idwert/
domain.de/bereich2/unterbereich2.2/unterbereich2.2.1/id/idwert/
domain.de/bereich2/unterbereich2.2/unterbereich2.2.2/id/idwert/
domain.de/bereich2/unterbereich2.3/id/idwert/
domain.de/bereich2/unterbereich2.4/id/idwert/
usw....

Um zu wissen, welche Seite nun angezeigt werden soll, reicht mir als Info der idwert. Das hat mich zu folgender Regelgeführt:

RewriteRule ^.+/StoryID/(.*)$ /projektname/index.php?StoryID=$1

Die Regel funktioniert soweit auch. Das Problem ist aber, dass Bilder nicht mehr angezeigt und Styles und Scripts von ausgelagerten Datei nicht mehr ausgewertet werden.

Ist mein Ansatz völlig falsch oder fehlt nur eine Kleinigkeit.
rknadmin
.
.
 
Beiträge: 3
Registriert: 15.07.2009 12:59

Beitragvon Gumbo » 15.07.2009 17:27

Referenziere die externen Ressourcen durch absolute URL-Pfade oder gleich absolute URLs.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon rknadmin » 16.07.2009 07:23

Gibt es keine Möglichkeit das über rewriterules zu lösen? Wegen meiner auch mit einem völlig neuen Ansatz. Ich müsste sonst massiv ins CMS eingreifen.
rknadmin
.
.
 
Beiträge: 3
Registriert: 15.07.2009 12:59

Beitragvon Gumbo » 16.07.2009 11:02

Eine zweite Möglichkeit wäre noch die Basis-URL zu ändern (siehe BASE-Element). Das hat aber auch ein paar Nebeneffekte, da dies dann eben alle relativen URLs betrifft.

Dieses Problem mit mod_rewrite zu lösen, ist zwar theoretisch auch möglich, aber absolut nicht zu empfehlen. Denn durch, dass relative Referenzen verwendet werden, werden diese Referenzen je nach Basis-URL unterschiedlich aufgelöst. Das heißt ein „css/style.css“ kann einmal zu „/foo/css/style.css“ und einmal zu „/foo/bar/baz/css/style.css“ aufgelöst werden. Das kann zwar beides intern zu „/css/style.css“ umgeschrieben werden kann, doch die beiden URLs bleiben dadurch weiterhin gültig, was das Caching ineffizient macht, da jede URL so ihr eigenes Stylesheet referenzieren würde. Und auch wenn eine externe Weiterleitung verwendet würde, würde das zwei statt nur einer Anfrage bedeuten.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon rknadmin » 16.07.2009 11:34

OK und danke für die schnelle Antwort. Dann werde ich statt "/" einfach "_" als Trennzeichen verwenden. Sieht zwar nicht so schön aus, aber damit muss unser GF dann leben, wenn er halt den ganzen Pfad da oben drinstehen haben will.

Was tut man nicht alles für Google
rknadmin
.
.
 
Beiträge: 3
Registriert: 15.07.2009 12:59

Beitragvon Gumbo » 16.07.2009 11:45

Verwende doch einfach absolute URL-Pfade.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier


Zurück zu URL-Design

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron