Die Rules werden nicht umgesetzt

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Die Rules werden nicht umgesetzt

Beitragvon n.arc » 10.01.2006 18:32

Hallo,
bin ein neuling in sachen modrewrite. habe jetzt eine .htaccess datei erstellt, und in dieser einige einträge vorgenommen. ziel ist es diese domain:
Code: Alles auswählen
http://www.domain.com/index.php?cat=86


in diese umwandeln zu lassen

Code: Alles auswählen
http://www.domain.com/thema-86.html


leider wird die rule nicht angewendet. es werden weiterhin php dateien angezeigt.

muss ich die verlinkung in der index.php noch durch irgendwas anpassen? für jede hilfe wäre ich dankbar.

hier meine .htaccess
Code: Alles auswählen
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.      [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)        http://www.%{HTTP_HOST}/$1   [R=301]

RewriteBase /
RewriteRule ^thema-(.*).html$ index.php?cat=$1 [L]
RewriteRule ^index.html$ index.php [L]
RewriteRule ^contact.html$ contact.php [L]
n.arc
.
.
 
Beiträge: 16
Registriert: 14.10.2005 20:11

Beitragvon Bob » 10.01.2006 19:56

muss ich die verlinkung in der index.php noch durch irgendwas anpassen?

ja, durch manuelle Umprogrammierung deines PHP-Scripts.

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^$
# --> L-Flag setzen
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

# --> Punkte im Pattern escapen; Punkt ausschließen
RewriteRule ^thema-([^.]+)\.html$ /index.php?cat=$1 [L]
RewriteRule ^index\.html$ /index.php [L]
RewriteRule ^contact\.html$ /contact.php [L]
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon n.arc » 10.01.2006 21:17

kannst du mir vielleicht sagen wo ich anfangen soll, und wie ich es anpasse? das wäre super weil ich keinen anschlußpunkt finde.
n.arc
.
.
 
Beiträge: 16
Registriert: 14.10.2005 20:11

Beitragvon Bob » 10.01.2006 23:42

kannst du mir vielleicht sagen wo ich anfangen soll, und wie ich es anpasse?

Das kannst nur du wissen, wie dein HTML-Quelltext generiert wird. Am besten durchsuchst du alle Dateien nach href. Dort werden dann evtl. Variablen notiert <a href="<?echo $ichbinderlink; ?>"> nach denen du dann wieder suchen kannst... Welches Script nutzt du denn, wenn nicht dein eigenes?
Vielleicht gibt es ja bereits fertige Anpassungen im Internet?
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon n.arc » 11.01.2006 00:00

nein für dieses script gibt es leider keine anpassungen, es wird auch nicht mehr weiter entwickelt, leider. dennoch ist es genau das script was ich gesucht habe. hmm, ich versuche mir die dateien anzuschauen, und da etwas durch zu steigen. vielleicht bekomme ich es ja doch hin.
n.arc
.
.
 
Beiträge: 16
Registriert: 14.10.2005 20:11

Beitragvon n.arc » 11.01.2006 03:55

ok, nach stunden langer programmierung und ausprobieren, scheint es wohl zu funktionieren.

ein problem besteht noch, ich habe hauptordner die genau so über eine id aufgerufen werden, wie die unterordner. somit kann ich beides durch eine variable leider nicht trennen.

ich habe es jedoch geschaft, das es zumindestens richtig umgewandelt wird. jedoch werde ich nicht zum richtigen ordner geleitet, weil die id fehlt. ich weiß leider nicht wie ich dies umgehen kann. kann mir mal wer auf die sprünge helfen?

so sieht der dynamische aufruf aus:
Code: Alles auswählen
http://www.domain.com/index.php?cat=86


sollte aber so ausschauen (hauptkategorie)
Code: Alles auswählen
http://www.domain.com/computer/


der aufbau sollte so sein

hauptkategorie 1
|___ unterkategorie 1
|___ unterkategorie 2
|___ unterkategorie 3
|___ unterkategorie 4
|___ unterkategorie 5

hauptkategorie 2
|___ unterkategorie 1
|___ unterkategorie 2
|___ unterkategorie 3

hauptkategorie 2
|___ unterkategorie 1

desweiteren habe ich noch ein weiteres problem. wenn meine kategorie leerzeichen hat, wie kann ich diese duch einen bindestrich ersetzen?
n.arc
.
.
 
Beiträge: 16
Registriert: 14.10.2005 20:11

Beitragvon Bob » 11.01.2006 18:54

sollte aber so ausschauen (hauptkategorie)
Code: Alles auswählen
http://www.domain.com/computer/

Das funktioniert "on the fly" nicht, da du die catID nicht per mod_rewrite ermitteln kannst. Du müsstest also in PHP dann die catID anhand der Klartextbeschreibung (computer) wieder ermitteln. Oder du baust die ID mit in die URL ein, z.B.
/computer-86.html

wenn meine kategorie leerzeichen hat, wie kann ich diese duch einen bindestrich ersetzen?
z.B. über ereg_replace
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon n.arc » 18.02.2006 01:20

leider bekomme ich es auf teufel komm raus nicht hin. bin nicht so der php progger, eher ein grafiker und datenbankentwickler. wer kann mir bei diesem problem helfen, und eventuell das script anpassen?
n.arc
.
.
 
Beiträge: 16
Registriert: 14.10.2005 20:11


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

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

cron