mod_rewrite

Begonnen von KeinenPlan, 06 April 2005, 23:26:10

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

KeinenPlan

Hallo,
gibt es eigentlich zum mod_rewrite eine genau beschreibung wie das funktioniert?
habe schon einiges probiert (das vorgegeben teil eben), aber irgendwie funktioniert das nicht.
gibt es eine längere mod_rewrite regelung (für mehr module und strukturen), als die in der beispiel datei vorgegebene ?

aber wie gesagt, eine beschreibung, was zu beachten ist, wie der server konfiguriert sein muss und was wohin muss, würde evtl shcon reichen! wo finde ich denn sowas? hier habe ich - trotz suchens - nichts gefunden!

Andi

Hi KeinenPlan :)

hier wirst du mit Sicherheit fündig:

http://www.modrewrite.de/
schön´s Grüssle, Andi

KeinenPlan

Super Danke, werde mich gleich da mal umschauen ;-)
Und bei Bedarf darf ich doch sicher hier auch nochmal nachfragen !??!

KeinenPlan

Sodala, nun hab ich das schon so einigermaßen hinbekommen, nur hab ich bereits jetzt schon eine Frage:

Ich habe zum Beispiel folgende Rule eingestellt:
RewriteRule ^artikel.html modules.php?name=News [L]
Und die auch noch:
RewriteRule ^artikel-([1-9][0-9]*).html modules.php?name=News&file=article&sid=$1 [L]

Beim Aufruf der oberen Regel kommt ja die Übersicht der Artikel, bin ich dann auf dieser artikel.html, sehe ich die Anreisser der Artikel, klicke ich auf weiter steht allerdings noch die "alte" Verlinkung da.
Sicherlich kann ich nun die einzelnen Artikel per statischem Link erreichen, aber eben die Links selber werden nicht umgeschrieben, oder sehe ich das falsch? Muss ich da alles manuell machen?

Gleiches fiel mir ja prompt bei der Navigation auf! Muss ich nun die  ganze Navigation manuell umschreiben? Oder gibt es da auch eine Möglichkeit dies in einem Aufwasch zu erledigen? Also auch irgendwie über die htaccess ?

Vielen Dank schon mal !

Regs

Ich erarbeite gerade die GoogleTaps für unsere Version. Für die News sieht das so aus:

$urlin = array(
"'(?<!/)modules.php\?name=Your_Account&amp;op=userinfo&amp;uname=([a-zA-Z0-9_-]*)'",
"'(?<!/)modules.php\?name=News&amp;file=article&amp;sid=([0-9]*)&amp;mode=([a-z]*)&amp;order=([0-9]*)&amp;thold=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;new_topic=([0-9]*)&amp;pagenum=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=categories&amp;op=newindex&amp;catid=([0-9]*)&amp;pagenum=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=categories&amp;op=newindex&amp;catid=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=print&amp;sid=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=friend&amp;op=FriendSend&amp;sid=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;pagenum=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=article&amp;op=newindex&amp;catid=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;file=article&amp;sid=([0-9]*)'",
"'(?<!/)modules.php\?name=News&amp;new_topic=([0-9]*)'",
"'\"(?<!/)modules.php\?name=News\"'",
"'(?<!/)modules.php\?name=Search&amp;author=([a-zA-Z0-9_-]*)'",
"'(?<!/)modules.php\?name=Search&amp;topic=([0-9]*)'",
"'(?<!/)modules.php\?name=Your_Account&amp;op=([a-z_]*)'",
"'(?<!/)modules.php\?name=Topics'"
);

$urlout = array(
"userinfo-\\1.html",
"article-\\1-\\2-\\3-\\4.html",
"article-topic\\1-page\\2.html",
"article-category\\1-page\\2.html",
"article-category-\\1.html",
"article-print-\\1.html",
"article-friend-\\1.html",
"article-page-\\1.html",
"article-cat-\\1.html",
"article\\1.html",
"article-topic-\\1.html",
"\"news.html\"",
"search-author-\\1.html",
"search-\\1.html",
"account-\\1.html",
"topics.html"
);


Die .htaccess:

#Articles
RewriteRule ^article-([0-9]*)-([a-z]*)-([0-9]*)-([0-9]*).html modules.php?name=News&file=article&sid=$1&mode=$2&order=$3&thold=$4 [L]
RewriteRule ^article-([0-9-]*)-([a-z]*)-([0-9]*)-([0-9]*).html([0-9#]*) modules.php?name=News&file=article&thold=$1&mode=$2&order=$3&sid=$4$5 [L]
RewriteRule ^article-topic([0-9]*)-page([0-9]*).html modules.php?name=News&new_topic=$1&pagenum=$2 [L]
RewriteRule ^article-category([0-9]*)-page([0-9]*).html modules.php?name=News&file=categories&op=newindex&catid=$1&pagenum=$2 [L]
RewriteRule ^article-category-([0-9]*).html modules.php?name=News&file=categories&op=newindex&catid=$1 [L]
RewriteRule ^article-print-([0-9]*).html modules.php?name=News&file=print&sid=$1 [L]
RewriteRule ^article-friend-([0-9]*).html modules.php?name=News&file=friend&op=FriendSend&sid=$1 [L]
RewriteRule ^article-page-([0-9]*).html modules.php?name=News&pagenum=$1 [L]
RewriteRule ^article([1-9][0-9]*).* modules.php?name=News&file=article&sid=$1 [L]
RewriteRule ^article-topic-([0-9]*).html modules.php?name=News&new_topic=$1 [L]
RewriteRule ^allnews.html modules.php?name=News&file=allindex [L]
RewriteRule ^news.html modules.php?name=News [L]
RewriteRule ^neues.html modules.php?name=pdNews [L]


(pdNews ist eine Newsindex von Pixdesign, ich hab die Links jetzt einfach mal drin gelassen).

KeinenPlan

Hier ein Auszug aus htaccess und header und footer, was mache ich da falsch ?

footer, recht weit unten:

// mod_rewrite
$contents = ob_get_contents();
ob_end_clean();
echo replace_for_mod_rewrite($contents);
global $dbg_starttime;


header:

global $PHP_SELF;
if (!defined("mxMainFileLoaded")) header("Location: index.php");

ob_start();

function replace_for_mod_rewrite(&$s)
{
$urlin =
array(
"'(?<!/)index.php'",
"'(?<!/)modules.php\?name=(Web_Links\")'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=AddLink'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=RandomLink'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=TopRated'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=MostPopular'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=NewLinks&newlinkshowdays=([0-9]*)'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=NewLinksDate&selectdate=([0-9]*)'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=NewLinks'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=visit&lid=([0-9]*)'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=([0-9]*)&orderby=([a-zA-Z0-9]*)'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=([0-9]*)&min=([0-9]*)&orderby=([a-zA-Z0-9]*)&show=([0-9]*)'",
"'(?<!/)modules.php\?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=([0-9]*)'",
);

$urlout = array(
"index.html",
"weblinks.html\"",
"add-link.html",
"zufallslink.html",
"toplinks.html",
"poplinks.html",
"newlinksw-\\1.html",
"newlinksd-\\1.html",
"newlinks.html",
"vlink\\1.html",
"linkorder\\1-\\2.html",
"links\\1-\\2-\\3-\\4.html",
"links\\1.html",
);

$s = preg_replace($urlin, $urlout, $s);
return $s;
}

/// definiert, dass diese Datei bereits includet wurde
/// nicht verändern!
$GLOBALS["header"] = 1;


und htaccess:

#Web Links
RewriteRule ^weblinks.html modules.php?name=Web_Links [L]
RewriteRule ^add-link.html modules.php?op=modload&name=Web_Links&file=index&l_op=AddLink [L]
RewriteRule ^zufallslink.html modules.php?name=Web_Links&l_op=RandomLink [L]
RewriteRule ^toplinks.html modules.php?name=Web_Links&l_op=TopRated [L]
RewriteRule ^poplinks.html modules.php?op=modload&name=Web_Links&file=index&l_op=MostPopular [L]
RewriteRule ^newlinks.html modules.php?op=modload&name=Web_Links&file=index&l_op=NewLink [L]
RewriteRule ^newlinksw-([0-9]*).html modules.php?name=Web_Links&l_op=NewLinks&newlinkshowdays=$1 [L]
RewriteRule ^newlinksd-([0-9]*).html modules.php?name=Web_Links&l_op=NewLinksDate&selectdate=$1 [L]
RewriteRule ^vlink([0-9]*).html modules.php?name=Web_Links&l_op=visit&lid=$1 [L]
RewriteRule ^linkorder([0-9]*)-([a-zA-Z0-9]*).html modules.php?name=Web_Links&l_op=viewlink&cid=$1&orderby=$2 [L]
RewriteRule ^links([0-9]*)-([0-9]*)-([a-zA-Z0-9]*)-([0-9]*).html modules.php?name=Web_Links&l_op=viewlink&cid=$1&min=$2&orderby=$3&show=$4 [L]
RewriteRule ^links([0-9]*).html modules.php?name=Web_Links&l_op=viewlink&cid=$1 [L]


Sodala, der Link domain.com/weblinks.html funktioniert einwandfrei ....
Die Links die dann folgen nur teilweise: Link melden, Neu, Beliebt, Topbewertet und Zufall funktionieren.
Aber alles andere nicht, weder die Direktlinks zu den Neuen bzw Beliebtesten 10 Links, als auch die Kategorien selber. Da kommen dann wieder die "normalen" URLs - also die mit Fragezeichen etc.

Ich habe einen Direktlink aus den Weblinks in der Navigationsleiste und komischerweise wird der "rewritten" ...
domain.com/vlink210.html funktioniert ...

Also irgendwie innerhalb des Modules selber klappt es nicht so ganz!

Was habe ich da nur vergessen ? Kann mir irgendjemand einen Tip geben ?
Ich komm echt nicht weiter, habe gesucht, gesucht, probiert, probiert, aber nichts .... :-(

Das gilt aber nicht nur fürs Weblink Modul, sondern auch fprs Download Modul z.b. etc. ...
Irgendwie hab ich den Verdacht, dass es an den Regeln liegt, die irgendwelche Variablen übergeben, aber ich weiss echt nicht mehr weiter ! Irgendjemand einen Rat ??

Vielen Dank schon mal !