Seite 1 von 1
Frage: "preg replace" für Mod_Rewrite
Verfasst: 15.04.2005, 09:29
von shakur
Hallo,
ich habe das Forum für meine Website gestern auf Statische Urls umgestellt.
Aus
https://www.domain.de/forums.php?p=1
wurde nun
https://www.domain.de/p1.html
usw...
Hierfür habe ich mir ein Script geschrieben welches ich per include in die einzelnen Seiten integriert habe.
#####################
<?
function replace_for_mod_rewrite(&$s) {
$s = preg_replace("'forums.php\?([a-z]+)=([0-9]+)'", "\\1\\2.html", $s);
return $s;
}
ob_start("replace_for_mod_rewrite");
?>
#####################
Das funktioniert soweit echt super, allerdings habe ich noch 2 Seiten im Forum dessen Links etwas längere Variablen in der URL haben:
https://www.domain.de/posts.php?t=173&c ... p=10&ccp=2
Hier komm ich an meine Grenzen, ich habe schon verschiedene Varianten ausprobiert, aber da ich nur begrenzt PHP Kenntnisse habe bekomm ichs irgendwie nicht hin
Es wäre super wenn mir da jemand helfen könnte
Big THANKS!
Verfasst:
von
Hochwertiger Linkaufbau bei ABAKUS:
- Google-konformer Linkaufbau
- nachhaltiges Ranking
- Linkbuilding Angebote zu fairen Preisen
- internationale Backlinks
Wir bieten
Beratung und
Umsetzung.
Jetzt anfragen:
0511 / 300325-0
Frage: "preg replace" für Mod_Rewrite
Verfasst: 15.04.2005, 12:18
von derHund
du mußt die syntax doch nur sinngemäß fortsetzen ...
https://www.domain.de/posts.php?t=173&c ... p=10&ccp=2
kannst du durch
posts.php\?([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)
beschreiben ... ich weiß nicht, wie deine umgeschriebene url aussehen soll, darum mußt du die selbst basteln - die acht geklammerten teile lassen sich jetzt durch $1 - $8 (\1 - \8 bzw. \\1-\\8) ansprechen. also, von mir aus dann \1\2-\3\4-\5\6-\7\8.html oder ähnlich.
Verfasst: 15.04.2005, 13:29
von magadoo
Als Anmerkung:
Falls reguläre Ausdrücke komplex werden, kann man mit einem netten Tool ein wenig "herumexperimentieren":
https://www.weitz.de/regex-coach/
It shows whether a regular expression matches a particular target string.
It can also show which parts of the target string correspond to captured register groups or to arbitrary parts of the regular expression.
It can "walk" through the target string one match at a time.
It can simulate Perl's split and s/// (substitution) operators.
It tries to describe the regular expression in plain English.
It can show a graphical representation of the regular expression's parse tree.
It can single-step through the matching process as performed by the regex engine.
Everything happens in "real time", i.e. as soon as you make a change somewhere in the application all other parts are instantly updated.
Re: Frage: "preg replace" für Mod_Rewrite
Verfasst: 15.04.2005, 20:08
von shakur
derHund hat geschrieben:du mußt die syntax doch nur sinngemäß fortsetzen ...
https://www.domain.de/posts.php?t=173&c ... p=10&ccp=2
kannst du durch
posts.php\?([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)
beschreiben ... ich weiß nicht, wie deine umgeschriebene url aussehen soll, darum mußt du die selbst basteln - die acht geklammerten teile lassen sich jetzt durch $1 - $8 (\1 - \8 bzw. \\1-\\8) ansprechen. also, von mir aus dann \1\2-\3\4-\5\6-\7\8.html oder ähnlich.
Das funktioniert leider nicht
Es geht um die "weiter" links auf folgender URL:
https://www.hipornot.de/posts.php?t=15
Kann es vielleicht sein das es Probleme gibt weil die Links unterschiedliche Variablen enthalten?
Frage: "preg replace" für Mod_Rewrite
Verfasst: 15.04.2005, 22:09
von Caterham
Habe gelesen dass Suchmaschienen nicht so gerne von Javascript das location.href sehen.
ja, klar, die regEx
posts.php\?([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)
passt nicht auf
posts.php?t=15
Da musst du schon einzenle Sachen definieren. Selbst wenn du hier (im regEx-Ausdruck) alle Werte optional machst, so hast du in der Substitution dann lauter Bindestriche ohne Werte á la
t14---.html
Grüße
Robert
Re: Frage: "preg replace" für Mod_Rewrite
Verfasst: 15.04.2005, 23:23
von shakur
Caterham hat geschrieben:Habe gelesen dass Suchmaschienen nicht so gerne von Javascript das location.href sehen.
ja, klar, die regEx
posts.php\?([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)&([a-z]+)=([0-9]+)
passt nicht auf
posts.php?t=15
Da musst du schon einzenle Sachen definieren. Selbst wenn du hier (im regEx-Ausdruck) alle Werte optional machst, so hast du in der Substitution dann lauter Bindestriche ohne Werte á la
t14---.html
Grüße
Robert
kannst du das etwas genauer interpretieren?
mir fehlt irgendwie der durchblick
