[mod_rewrite] Bilder werden nicht angezeigt - Keine Funktion

hemorieder

Lieutenant
Dabei seit
März 2003
Beiträge
602
Hey,

ich habe folgendes Problem mit meiner Seite bzw mit der mod_rewrite:

Situation:

Der Originallink sieht so aus

Code:
index.php?la=de&cf=0&main=news
oder
index.php?la=de&cf=0&main=news&seite=2
oder
index.php?la=de&cf=0&main=artikel&detail=der_bestimme_artikel
ziel ist folgendes schema:

Code:
www.blabla.de/de/0/news
oder
www.blabla.de/de/0/news/2
oder
www.blabla.de/de/0/artikel/der_bestimmte_artikel
dazu habe ich folgende mod_rewrite geschrieben und natürlich in die .htaccess geschrieben

Code:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(bilder|img|css|js|config)
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /index.php?la=$1&cf=$2&main=$3&detail=$4&seite=$5 [L]
ErrorDocument 404 /index.php
Ich sehe selber das Problem das das ansich nicht stimmig ist mit der Seite und dem Detail.
Leider steige ich da auch logisch auch nicht hinter, wie ich diese Variabel mit einbaue....

Das Ergebnis ist jedenfalls, dass es erstmal nicht funktioniert, dass heißt ich klicke, die url ändert sich, aber nicht der content ?

wäre toll wenn mir jemand helfen könnte :)

lg
 
Zuletzt bearbeitet: (1. Problem bereits gelöst :))

Znrl

Lieutenant
Dabei seit
Jan. 2008
Beiträge
571
Also meine Bilder binde ich so ein:
<img src="/bilder/1.jpg">
Keine URL oder so, den Slash kannst du mal setzen und schauen, damit der Pfad relativ zum Server ist.

Was passiert denn, wenn du sowas:
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-f
Statt dem:
RewriteCond %{REQUEST_URI} !^/(bilder|img|css|js|config)
nimmst. Ich weiß auch nicht genau was du da haben willst vtl. kannst du ja auch .jpg und .css etc. ausschließen oder soll ds der komplette bilder Ordner sein?
 

hemorieder

Lieutenant
Ersteller dieses Themas
Dabei seit
März 2003
Beiträge
602
@NoXPhasma
Dankeee !!! Das hat funktioniert, die Bilder sind nun zu sehen!

Also das Bilderproblem existiert somit nicht mehr :)


Leider noch das andere mit dem mod_rewrite ansich... :(

Ideen ?
 

Znrl

Lieutenant
Dabei seit
Jan. 2008
Beiträge
571
edit. ok vergiss das: Wie sehen denn die Links aus, die du in deinem Qelltext setzt?
steht ja ganz oben und mit den base href oder links begiinnend mit / solte das passen.


Mach mal noch backslashes vor die Punkte, die Punkte sein solllen z.B. \.php
 
Zuletzt bearbeitet:

hemorieder

Lieutenant
Ersteller dieses Themas
Dabei seit
März 2003
Beiträge
602
wie meinst du das ?

aktuell sind die links im quelltext ja so wie ich sie haben möchte, also in der basiversion

Code:
<a href="de/0/news">
oder hab ich es jetzt komplett falsch verstanden bei mod_rewrite und ich kann meine links "alt" lassen und der wandelt die für mich um ?

also aus

Code:
<a href="index.php?la=de&cf=0&main=news">
wird automatisch

Code:
de/0/news
oder was meins du ?
 

Znrl

Lieutenant
Dabei seit
Jan. 2008
Beiträge
571
Nein ersteres passt, so wies aussehen soll stehts auch in den Links.
Versuch doch erstmal was einfaches. Normal ist deine Website über domain.de und www.domain.de zu erreichen. Du kannst das umleiten, damit nur eins benutzt wird.
Das sollte alles auf www. umleiten:
--------
RewriteEngine On
RewriteBase /
Options +FollowSymlinks

RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www\.domain\.de/$1 [R=301,L]
------------

kannst du mal testen. Ich setz vor die Punkte immer backslashes. Ist wohl nicht immer überall nötig aber bei mir lief das so immer am besten. Der Punkt . kann nämlich als regulärer Ausdruck auch für ein beliebiges Zeichen stehen.
 

hemorieder

Lieutenant
Ersteller dieses Themas
Dabei seit
März 2003
Beiträge
602
soooo, also ich habe nebenbei etwas bei mir verändert, jetzt ist die Situation glaub ich einfacher zu lösen

so sieht die rule gerade aus

Code:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(_admin|bilder|img|css|js|config)
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /index.php?la=$1&cf=$2&main=$3&detail=$4[L]
ErrorDocument 404 /index.php
das funktioniert auch, allerdings NUR wenn immer ein "&detail=XYZ" dabei ist, auch wenn keins benötigt wird, also:

Code:
www.blabla.de/de/0/news         --> geht nicht
www.blabla.de/de/0/news/0      --> geht
das gibt ja auch sinn, weil ich ja nach der vierten Variabel frage.
Allerdings muss es doch möglich sein zu sagen, wenn "detail="XYZ" dabei ist, dann benutz es auch, und wenn nicht, dann halt nicht...

wenn du/ihr versteht was ich meine ?
 

Znrl

Lieutenant
Dabei seit
Jan. 2008
Beiträge
571
Vermutlich will er die Slashes noch? Kannst mal testen ob ->www.blabla.de/de/0/news/ <- geht.
Du kannst das so machen, ist halt lang, Vorteil du kannst das alles anpassen, auch wenn du mal nicht mehr nur "la" "cf" "main" etc. hast sondern jetzt "la" "bla" "blub" und "main" willst... allderdings wird das schnell unübersichtlich.

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /index.php?la=$1&cf=$2&main=$3&detail=$4[L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?la=$1&cf=$2&main=$3[L]
RewriteRule ^([^/]*)/([^/]*) /index.php?la=$1&cf=$2[L]
RewriteRule ^([^/]*)$ /index.php?la=$[L]

Man kann das auch rekursiv machen mit [N], dann wird das kurz allerdings musst du dann auf endlosschleifen achten. Der Vorteil wäre du kannst später beliebig viele neue Parameter übergeben. Oder du schreibst deinen Ausdruck um.

Muss dir aber sagen ich geh dem meist auch aus dem weg ich bastel das bis es funktioniert und dann is gut. Gibt sicher Leute die das 1000 mal besser können.
 
Top