mod_rewrite

Begonnen von m-t, 16 Oktober 2007, 21:51:07

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

m-t

im anderen beitrag scheint das interesse irgendwie verflogen zu sein :-)

hier die änderungen wie sie bei mir auf der seite sind, kleine fehler gab es noch aber jetzt sollte es funktionieren.

in der .htaccess das hier hinzufügen:

## Downloads, News, Web_links

RewriteRule ^(Web_Links)-cid-(.*)-([0-9]+)-min-([0-9]+)\.html$ modules.php?name=$1&cid=$3&min=$4 [L]
RewriteRule ^(Downloads)-cid-(.*)-([0-9]+)-min-([0-9]+)\.html$ modules.php?name=$1&cid=$3&min=$4 [L]
RewriteRule ^(Downloads)-lid-(.*)-([0-9]+)\.html$ modules.php?name=$1&op=view&lid=$3 [L]
RewriteRule ^(Downloads)-cid-(.*)-([0-9]+)\.html$ modules.php?name=$1&cid=$3 [L]
RewriteRule ^(Web_Links)-cid-(.*)-([0-9]+)\.html$ modules.php?name=$1&cid=$3 [L]
RewriteRule ^(Web_Links)-lid-(.*)-([0-9]+)\.html$ modules.php?name=$1&op=view&lid=$3 [L]
RewriteRule ^(News)-cat-(.*)-([0-9]+)\.html$ modules.php?name=$1&file=categories&catid=$3 [L]
RewriteRule ^(News)-sid-(.*)-([0-9]+)\.html$ modules.php?name=$1&file=article&sid=$3 [L]


mx_modrewrite.php

nach:

if (isset($old)) {
$content = str_replace($old, $new, $content);


das hier einfügen:


//Moderewrite erweiterung (News, Downloads, Web_Links)
//DOWNLOADS DETAILS LID
preg_match_all('#Downloads-op-view-lid-(\d*)#', $content, $down, PREG_SET_ORDER);
foreach ($down as $down1){

$down2[0] = preg_replace('#Downloads-op-view-lid-#', '', $down1[0]);
$abfrage = "SELECT title, lid FROM mx_downloads_downloads WHERE lid = '$down2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_down_rewrite = $row["title"];
$titel_down_rewrite = preg_replace("#Ä#i", "Ae", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#Ö#i", "Oe", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#Ü#i", "Ue", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ä#i", "ae", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ö#i", "oe", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ü#i", "ue", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ß#", "ss", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
$titel_down_fert = "Downloads-lid-";
$titel_down_fert.= "$titel_down_rewrite-";
$titel_down_fert.= $down2[0];
$replace = "#".$down1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_down_fert, $content);
}

}
//Downloads Kategorie (CID)
preg_match_all('#Downloads-cid-(\d*)#', $content, $down, PREG_SET_ORDER);
foreach ($down as $down1){

$down2[0] = preg_replace('#Downloads-cid-#', '', $down1[0]);
$abfrage = "SELECT title, cid FROM mx_downloads_categories WHERE cid = '$down2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_down_rewrite = $row["title"];
$titel_down_rewrite = preg_replace("#Ä#i", "Ae", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#Ö#i", "Oe", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#Ü#i", "Ue", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ä#i", "ae", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ö#i", "oe", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ü#i", "ue", $titel_down_rewrite);
$titel_down_rewrite = preg_replace("#ß#", "ss", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
$titel_down_fert = "Downloads-cid-";
$titel_down_fert.= "$titel_down_rewrite-";
$titel_down_fert.= $down2[0];
$replace = "#".$down1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_down_fert, $content);
}

}
//Web_Links Kategorie

preg_match_all('#Web_Links-cid-(\d*)#', $content, $links, PREG_SET_ORDER);
foreach ($links as $links1){

$links2[0] = preg_replace('#Web_Links-cid-#', '', $links1[0]);
$abfrage = "SELECT title, cid FROM mx_links_categories WHERE cid = '$links2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_links_rewrite = $row["title"];
$titel_links_rewrite = preg_replace("#Ä#i", "Ae", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#Ö#i", "Oe", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#Ü#i", "Ue", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ä#i", "ae", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ö#i", "oe", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ü#i", "ue", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ß#", "ss", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
$titel_links_fert = "Web_Links-cid-";
$titel_links_fert.= "$titel_links_rewrite-";
$titel_links_fert.= $links2[0];
$replace = "#".$links1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_links_fert, $content);
}

}
//Web_Links Details
preg_match_all('#Web_Links-op-view-lid-(\d*)#', $content, $links, PREG_SET_ORDER);
foreach ($links as $links1){

$links2[0] = preg_replace('#Web_Links-op-view-lid-#', '', $links1[0]);
$abfrage = "SELECT title, lid FROM mx_links_links WHERE lid = '$links2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_links_rewrite = $row["title"];
$titel_links_rewrite = preg_replace("#Ä#i", "Ae", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#Ö#i", "Oe", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#Ü#i", "Ue", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ä#i", "ae", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ö#i", "oe", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ü#i", "ue", $titel_links_rewrite);
$titel_links_rewrite = preg_replace("#ß#", "ss", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
$titel_links_fert = "Web_Links-lid-";
$titel_links_fert.= "$titel_links_rewrite-";
$titel_links_fert.= $links2[0];
$replace = "#".$links1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_links_fert, $content);
}

}
// News Kategorie
preg_match_all('#News-file-categories-catid-(\d*)#', $content, $news, PREG_SET_ORDER);
foreach ($news as $news1){

$news2[0] = preg_replace('#News-file-categories-catid-#', '', $news1[0]);
$abfrage = "SELECT title, catid FROM mx_stories_cat WHERE catid = '$news2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_news_rewrite = $row["title"];
$titel_news_rewrite = preg_replace("#Ä#i", "Ae", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#Ö#i", "Oe", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#Ü#i", "Ue", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ä#i", "ae", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ö#i", "oe", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ü#i", "ue", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ß#", "ss", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
$titel_news_fert = "News-cat-";
$titel_news_fert.= "$titel_news_rewrite-";
$titel_news_fert.= $news2[0];
$replace = "#".$news1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_news_fert, $content);
}

}
//News Details
preg_match_all('#News-file-article-sid-(\d*)#', $content, $news, PREG_SET_ORDER);
foreach ($news as $news1){

$news2[0] = preg_replace('#News-file-article-sid-#', '', $news1[0]);
$abfrage = "SELECT title, sid FROM mx_stories WHERE sid = '$news2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_news_rewrite = $row["title"];
$titel_news_rewrite = preg_replace("#Ä#i", "Ae", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#Ö#i", "Oe", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#Ü#i", "Ue", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ä#i", "ae", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ö#i", "oe", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ü#i", "ue", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ß#", "ss", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ñ#", "n", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ó#", "o", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#í#", "i", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#á#", "a", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#ú#", "u", $titel_news_rewrite);
$titel_news_rewrite = preg_replace("#é#", "e", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
$titel_news_fert = "News-sid-";
$titel_news_fert.= "$titel_news_rewrite-";
$titel_news_fert.= $news2[0];
$replace = "#".$news1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_news_fert, $content);
}

}
}
}

return $content;
}


das wars schon...

Fummelhase

was kann man damit machen???  :puzzled:

breakdancer

#2
Hi Hase,

Suchfunktion...Suchfunktion...Suchfunktion...

Bitte immer mal die Suchfunktion benutzen. Hier im Forum ist schon so viel dazu geschrieben worden. Allein hier in diesem Unterforum wärst Du x-Mal fündig geworden...

Und Google spuckt beim Thema mod_rewrite auch unzählige Links aus.

Schön erklärt ist es auch hier: http://de.wikipedia.org/wiki/Rewrite-Engine

So sehen Deine Adressen ohne mod_rewrite aus: http://deine-domain.de/modules.php?name=Surveys

Und so mit mod_rewrite: http://www.deine-domain.de/Surveys.html

Nicht nur kürzer und imprägnanter sondern auch suchmaschinenfreundlicher. Denn HTML-Seiten mögen die Roboter wesentlich lieber wie kryptische Adressen mit einem "?" und einem "=" drin. Klingt komisch, ist aber die Art und Weise, wie Suchmaschinen Deine Webseitenadressen lesen und verstehen.

Wenn es nicht so negativ belegt wäre, müsste man sagen, das Verwenden von mod_rewrite ist das Vorspiegeln falscher Tatsachen, nämlich dass Deine ganze Webseite "nur" aus reinen .html-Dokumenten besteht. Dabei bleibt die Lesbarkeit und Akzeptanz durch Google & Co erhalten und wird sogar noch deutlich verstärkt.

Liebe Grüße

Markus

Fummelhase

Was kann man damit machen war im Bezug auf die Erweiterung  ;)

Ich glaube zu wissen was das ist, es sollte lesbare URLs erzeugen  :thumbup: habe es grade gestest aber scheint nicht ganz zu funktionieren.


@ m-t

Versuche mal bitte eine Idioten sichere Anleitung zu schreiben  :thumbup: es wäre echt super  :thumbup:


mfg
Hase


m-t

Zitat von: Fummelhase am 17 Oktober 2007, 01:05:14
habe es grade gestest aber scheint nicht ganz zu funktionieren.
hast recht, jetzt wäre es praktisch wenn man den ersten beitrag nochmal editieren könnte :-(

in der mx_modrewrite sind am ende zwei klammern zuviel, mach aus dem


}

}
}
}

return $content;
}


das hier:


}
}

return $content;
}

Ria

Hallo mt,

ich glaube weniger das, dass Interesse verloren ging, sondern das es keine wirkliche DAU Anleitung gibt/gab zu mx.

Nun sieht es ja so aus, als ob Du nunmehr der "Menschheit" zu mx einen wirklichen Gefallen erfüllst :thumbup:

Wenn es denn nun funktioniert, betrifft es doch nur die Module:
(Downloads)
(Web_Links)
(News)

Kann man also nach der Vorlage auf ein X-beliebiges Modul erweitern :quest

Also den Modul Namen in der Klammer entspr. ändern und gut ist?

Vielleicht noch ein paar Sätze zur Selbsthilfe, DAU freundlich  :) das wäre nett und weitere Rückfragen zu dem Thema evtl. erledigt, bzw. man könnte dann auf diesen Thread hier grundsätzlich verweisen.

(wenn es denn funktioniert)

Gruss Ria


Fummelhase

Hallo

@ m-t
damit bekomme ich diesen fehler

Parse error: syntax error, unexpected $end in /includes/mx_modrewrite.php on line 420


mfg
Hase

m-t

Zitat von: Ria
Also den Modul Namen in der Klammer entspr. ändern und gut ist?

ganz so einfach ist es leider nicht :-)

wie gesagt ich hab keine ahnung von mod_rewrite und das hier hat mir jemand gemacht.
änderungen, wie auch immer, müsst ihr selbst ausprobieren. das für mich wichtigste sind die 4 module daher  langen mir die momentan.

Zitat von: Fummelhase
damit bekomme ich diesen fehler

Parse error: syntax error, unexpected $end in /includes/mx_modrewrite.php on line 420

ich denke das ist nur ein fehler mit den klammern, bin grad auf arbeit, wenn ich heimkomme häng ich hier mal meine mx_modrewrite ran.

Fummelhase

Zitatich denke das ist nur ein fehler mit den klammern, bin grad auf arbeit, wenn ich heimkomme häng ich hier mal meine mx_modrewrite ran.

Danke  :thumbup: das wäre echt cool von dir  :thumbup:

m-t

#9
bitteschön...

und was mir noch einfällt...

ich hab version 0.19 sp 4

cihan

Hallo m-t  :)
vielen Dank erstmal. Habe deinen mx_modrewrite.php genommen und .htaccess mit dem obengenannten Code erweitert... Ich sehe aber keine Veränderung, es ist also so geblieben wie es war  :gruebel:

schonmal danke im voraus.

m-t

mx_modrewrite.php ist aber richtig im includes verzeichniss ?

cihan

Hi, ja klar  :) Tut sich aber nichts.
lg

m-t

hm, dann fällt mir jetzt nix mehr ein :-(
ich habs auch nicht anders gemacht.

in der .htaccess den teil eingefügt und die mx_modrewrite ins includes verzeichniss, das wars

das ganze läuft jetzt auf 2 domains

cihan

Könnte es vielleicht was mit deiner .htaccess zu tun haben?  :red: 

lg

m-t

probiers :-)

cihan

Danke dir  :)
hätte nun praktisch das selbe wie du, nur tut sich nichts :(

m-t

komisch...
vielleicht probierts ja noch jemand anders

Fummelhase

ZitatDanke dir  Smiley
hätte nun praktisch das selbe wie du, nur tut sich nichts

Nicht nur bei dir  :BD:

Da müsste glaub ich auch was anderes geändert werden  :red:


Zitatkomisch...
vielleicht probierts ja noch jemand anders

Ich :)

Fummelhase

muß vielleicht etwas in der
includes/rewrite/global.php

geändert werden?