|
|
lorenzolamas

: 24.02.2010 : 10
|
| : 24.02.2010, 12:24 : Problem mit mod_rewrite |
|
|
Hallo,
ich habe mich in den letzten tagen viel mit mod-rewrite beschäftigt und durch die Suche, hier oder bei google, schon einige brauchbare Lösungen gefunden, die ich auch erfoglreich umsetzen konnte.
Doch hier hakt es:
RewriteBase /
RewriteRule artikel/news\.html$ index.php?page=856&ab=1
Hier kann ich den Artikel mit dem neuen Link
www.domain.de/artikel/news.html
erfolgreich aufrufen, doch wollen jetzt auch alle anderen Links auf dem Server den Ordner "artikel" mit aufrufen und das zerschießt die Seite
Wo ist der Fehler?
Ich hoffe, es kann mir jemand helfen.... |
|
| Nach oben |
|
 |
Mork vom Ork

: 08.07.2008 : 2568 : Aufm Friedhof.
|
| : 24.02.2010, 12:55 : Re: Problem mit mod_rewrite |
|
|
| lorenzolamas hat Folgendes geschrieben: |
RewriteRule artikel/news\.html$ index.php?page=856&ab=1
Hier kann ich den Artikel mit dem neuen Link
www.domain.de/artikel/news.html
erfolgreich aufrufen, doch wollen jetzt auch alle anderen Links auf dem Server den Ordner "artikel" mit aufrufen und das zerschießt die Seite
Wo ist der Fehler? |
Mit mod_rewrite hat das nichts zu tun, das gehört in die Abteilung HTML. Relative URLs in einer Seite beziehen sich immer auf die Basis-URL, das ist die URL der Seite, die wiederum die betreffenden URLs enthält.
Die URL deiner Seite ist www.domain.de/artikel/news.html, für ein <img src="bild.png"> würde der Browser dementsprechend die Basis www.domain.de/artikel/ plus der relativen URL bild.png aufrufen: www.domain.de/artikel/bild.png.
Abhilfe: Korrigiere die URLs in deiner Seite. URLs relativ zum Wurzelverzeichnis, d.h. solche, die mit einem Schrägstrich beginnen, bieten sich an. |
|
| Nach oben |
|
 |
lorenzolamas

: 24.02.2010 : 10
|
| : 24.02.2010, 13:19 : Problem mit mod_rewrite |
|
|
Sorry, aber dass versteh ich nicht so ganz. Ich dachte das man einen Ordner über mod_rewrite auch simulieren kann. Im dem Fall "artikel".
lass ich den "Ordner" artikel weg und mache es so:
RewriteRule news\.html$ index.php?page=856&ab=1
funktioniert es ja.... |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 24.02.2010, 14:03 : Problem mit mod_rewrite |
|
|
mod_rewrite ist nur die halbe miete... es wird nur beim Aufruf einer URL abgearbeitet... wenn jetzt die Links auf der Seite jetzt alle den Ordner /artikel/ mitaufrufen sind die Links auf der Site falsch, da diese alle in den Ordner Artikel verlinken...
wahrscheinlich ist es so wie MvO gesagt hat, das du alles relativ verlinkt hast, also z.B. so:
<a href="seite_a.html"> und wenn dieser dann auf der newsseite angezeigt wird, die ja in der Url den Ordner Artikel enthält, wird die seite_a.html ebenauch in dem Ordner Artikel gesucht... ebenso Bilder etc die nur relativ angegeben wurden...
wenn du mit mod_rewrite arbeitest solltest du immer mit absoluten Links arbeiten, also z.B. <a href="/seite_a.html"> dann ist egal in welchem Ordner die Seite liegt auf der dieser Link erscheint, die seite_a wird immer im stammverzeichnis gesucht... |
|
| Nach oben |
|
 |
lorenzolamas

: 24.02.2010 : 10
|
| : 24.02.2010, 15:07 : Problem mit mod_rewrite |
|
|
Danke für die Antworten.
Im Klartext heißt dass nun , dass ichmein script so auslegen muss, dass es nicht "index.php?wasauchimmer" heißt, sondern /index.php?wasauchimmer" |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 24.02.2010, 15:11 : Problem mit mod_rewrite |
|
|
| lorenzolamas hat Folgendes geschrieben: |
Danke für die Antworten.
Im Klartext heißt dass nun , dass ichmein script so auslegen muss, dass es nicht "index.php?wasauchimmer" heißt, sondern /index.php?wasauchimmer" |
jein...
wenn die URLs nicht umgeschrieben werden sollen isses so richtig...
wenn sie umgeschrieben werden sollen, muss dein script natürlich die neuen URLs verlinken...
aber immer ein / am Anfang stimmt schon.... wenn du auch immer direkt mit der domain verlinkst, also z.B. <a href="http://domain.tld/seite_a.html">, machst du es dummen contentdieben etwas schwerer, da diese dann ja die Links auch so mitübernehmen würden...  |
|
| Nach oben |
|
 |
lorenzolamas

: 24.02.2010 : 10
|
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 24.02.2010, 15:55 : Problem mit mod_rewrite |
|
|
| dann stimmt da etwas nicht.... |
|
| Nach oben |
|
 |
Mork vom Ork

: 08.07.2008 : 2568 : Aufm Friedhof.
|
| : 24.02.2010, 16:47 : Problem mit mod_rewrite |
|
|
| lorenzolamas hat Folgendes geschrieben: |
| Sorry, aber dass versteh ich nicht so ganz. Ich dachte das man einen Ordner über mod_rewrite auch simulieren kann. |
Der Browser weiß nichts von mod_rewrite, mod_rewrite ist eine rein serverinterne Angelegenheit. Der Browser sieht nur den HTML-Code, die URL des Codes (mit dem simulierten Ordner) und die URLs, die im Code drinstecken (und sich auf den simulierten Ordner beziehen), und damit arbeitet er wie beschrieben.
Wo, in der Adressleiste? Woher "wissen" denn „alle anderen Links auf dem Server [, dass sie] den Ordner "artikel" mit aufrufen“ sollen, wenn der Ordner im Browser gar nicht erscheint? Oder stehen im HTML-Code lauter artikel/-Verweise, die da nicht hingehören?
Nenne doch mal bitte die tatsächliche URL und was du alles in deiner .htaccess stehen hast. Im Moment passt deine Beschreibung hinten und vorne nicht. |
|
| Nach oben |
|
 |
lorenzolamas

: 24.02.2010 : 10
|
| : 24.02.2010, 20:14 : Problem mit mod_rewrite |
|
|
Ich versuchs mal. Der eigentliche linkt wird so aufgerufen
index.php?page=856&ab=1 (dynamisch)
Ich möchte ihn aber in www.domain.de/artikel/news.html rewriten.
RewriteEngine on
RewriteRule artikel/news\.html$ index.php?page=856&ab=1
Der Befehl in .htaccess hat alle anderen Links dazu aufgefordert den ordner "artikel" zu wollen, den es ja eigentlich nicht gibt und damit die Seite zerschossen.
Nun hatte ich es so probiert
RewriteEngine on
RewriteRule artikel/news\.html$ http://www.domain.de/index.php?page=856&ab=1
ruf ich jetzt www.domain.de/artikel/news.html auf wird die Seite korrekt angezeigt im Browser (Adressleiste) aber nach wie vor der "alte" link ausgebeben, sprich: http://www.domain.de/index.php?page=856&ab=1 |
|
| Nach oben |
|
 |
net(t)worker Gast
|
| : 24.02.2010, 20:26 : Problem mit mod_rewrite |
|
|
| wie gesagt... mod_rewrite ist nur die halbe Miete... biegt nur beim Aufruf um... bei der Ausgabe, also im Quelltext, musst du die Links anders ändern, das macht mod_rewrite nicht... |
|
| Nach oben |
|
 |
Ralle NL

: 14.10.2009 : 12 : Mierlo/NL
|
| : 26.02.2010, 12:19 : Problem mit mod_rewrite |
|
|
Moin moin,
irgendwie versteh ich dich nicht,willst Du nur die eine Seite so ausgeben lassen oder alle ?
denn für Alle sollte es doch so aussehen
RewriteRule ^([0-9]*)-([0-9]*)- index.php?article_id=$1&clang=$2&%{QUERY_STRING}
RewriteRule ^([0-9]*)- index.php?article_id=$1&%{QUERY_STRING}
oder lieg ich da jetzt Gedanklich falsch
"wenn Gott gewollt hätte das Frauen zur See fahren, hätte er das Meer Rosa gemacht und nicht Blau" |
|
| Nach oben |
|
 |