mod_rewrite Umleitung auf statische Url

strukturart

Erfahrenes Mitglied
Hallo,


ich verwende folgende Regel in der .htaccess:

PHP:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-(.*)-(.*)-(.*)\.php$ /artikel.php?subaction=$1&category=$2&id=$3&title=$4 [L]

die url: showfull-2-1368267065-Cantine.php

zeigt auf: artikel.php?subaction=showfull&category=2&id=1368267065&title=Cantine

Wie erreiche ich das wenn die dynamische Url eingegeben wird zum Beispiel als Link innerhalb
der Page das auf die statische umgeleitet wird?

HTML:
<a href="artikel.php?subaction=showfull&category=2&id=1368267065&title=Cantine">Link</a>

--> showfull-2-1368267065-Cantine.php
 
Hab es jetzt so gemacht das innerhalb des CMS der Link direkt auf den Alias der Url zeigt also:
HTML:
<a class="article_link" href="showfull-{category-id}-{news-id}-{title}.php" target="_self">

Gibt es eine Möglichkeit die mod_rewrite Regel so umzuschreiben das alle Get Variablen alle im Titel gespeichert werden?

PHP:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-(.*)-(.*)-(.*)\.php$ /artikel.php?subaction=$1&category=$2&id=$3&title=$4 [L]

So das z.B. die Url

HTML:
/neuer_artikel.php

auf

HTML:
/artikel.php?subaction=full&category=2&id=1234&titel=neuer_artikel

verweist?

Ich kenne mich leider noch nicht sehr gut mit den Regulären Expression aus :)
 
Zuletzt bearbeitet:
Hi,

deine RegEx scheint mir so zu funktionieren wie du es willst, nur dass nichts passiert, außer ich ersetze [L] durch [R=301,L] ersetze.

Gruß javaDeveloper2011
 
Hallo javaDeveloper2011,

die von mir erstellte Regle funktioniert, es wird korrekt umgeleitet.
Aber ist es möglich alle Variablen in dem Titel zu speichern so würde Pfad etwas schöner aussehen?
 
Diese URL mit 4 Variablen:

PHP:
artikel.php?subaction=$1&category=$2&id=$3&title=$4

möchte ich der letzten Variable dem $title speichern.

so das die Url z.B. nur noch so aussieht: /neuer_artikel.php

Geht so was?
 
Hallo,

ich nehme mal an du willst die Zahlen aus 'showfull-2-1368267065-Cantine.php' loswerden, oder?
Dazu müsste 1. der Titel eindeutig sein und 2. mod_rewrite in einer Datenbank nachsehen welche id zum titel gehört oder die Seite selbst (artikel.php) auch ohne id aufrufbar sein.

Ich bin mir ziemlich sicher das das nicht geht, außer:
Du schreibst artikel.php so um dass es nur noch die 'titel'-Variable bracht und den Rest selbst nachschaut.

Gruß javaDeveloper2011
 
Okay das scheint mir etwas kompliziert, wie könnt ich denn die - mit / ersetzen?

wenn ich die Regel so

PHP:
RewriteEngine On 
RewriteBase / 
RewriteRule ^(.*)/(.*)/(.*)/(.*)\.php$ /artikel.php?subaction=$1&category=$2&id=$3&title=$4 [L]





verwende wird sie ignoriert.
 
Hi,

also bei mir funktioniert es, hast du den Link denn geändert?
HTML:
<a class="article_link" href="showfull/{category-id}/{news-id}/{title}.php" target="_self">
 
Ja der Hacken war bei Link jetzt funktioniert es aber leider nur teilweise,
ich komme nicht mehr auf das Root Verzeichnis auch nicht
wenn der Link absolut ist z.B. http://www.mypage.com/index.php

Der Pfad wird einfach hinten dran gehängt.
Muss ich da was ändern?
HTML:
RewriteBase /

Danke für deine Hilfe.
 
Zurück