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.

Verfasst:
von

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 :-?