Ergebnis 1 bis 4 von 4

Thema: RegExp: Fragezeichen wird falsch ausgegeben

  1. #1

    RegExp: Fragezeichen wird falsch ausgegeben

    Ich hab ein kleines Problem ... ich habe eine kurze Zeit auf meiner Website die URL-Codierung http://weblog.r-craven.de/post### benutzt. Nach einiger Zeit hat mir das nicht mehr gefallen und ich habe die Permalinks über Mod-Rewrite anders gestaltet.

    Nun gibt es aber noch Seiten, die meine alte Linkstruktur benutzen. Damit diese auf der richtigen Seite landen und nicht bei einer 404-Seite, müsste die URL auf http://weblog.r-craven.de/?p=### umgeleitet werden. Dazu habe ich ein "RedirectMatch" in meine .htaccess geschrieben:

    Code:
    RedirectMatch permanent ^/post([0-9]{1,3}) http://weblog.r-craven.de/?p=$1
    Dummerweise wird bei der Ziel-URL das Fragezeichen bei /?p mit der Zeichenkette %3f maskiert. Wie kann ich nun verhindern, dass dies passiert? Ich brauch da ein Fragezeichen und zwar unmaskiert ... kann mir jemand helfen?

  2. #2
    Hmjo, ich hab mal irgendwann den Tipp bekommen [L,QSA] in der RewriteRule zu verwenden. Ich bin allerdings, seit ich den Tipp bekam, nie dazu gekommen es auszuprobieren, noch weiß ich wofür das Dingen gut ist. Ich weiß das [NC] zu beispiel, die RewriteRule unempfindlich für Groß und Kleinschreibung macht (No Case).
    Bei [L,QSA] könnt ich mir vorstellen dass Q für Question Mark und A für Ampersand (&) steht. S?... kein Plan... Semicolon?
    Well... probiers mal und erzähl uns von deinen Erfahrungen.
    Code:
    RedirectMatch permanent ^/post([0-9]{1,3}) http://weblog.r-craven.de/?p=$1 [L,QSA]
    Und wenn du Info's übder den Sinn von [L,QSA] findest, immer her damit. Ich konnt mit Google nix finden außer Anwendungsbeispiele ohne Erklärungen.

  3. #3
    QSA hängt AFAIK nur den Query-String an (Query String Append), falls einer übergeben wurde. Also falls du z.B. "foo.html" mit [QSA] auf "bar.php" umleitest, so wird "foo.html?qux" auf "bar.php?qux" umgeleitet. Da du den Query-String hier ja selber erstellen willst, weiß ich nicht ob das funktioniert, aber probieren geht wie wir alle wissen übers studieren. ^^

    Ieks, ich sehe gerade:
    Zitat Zitat von Apache Doc
    'qsappend|QSA' (query string append)
    This flag forces the rewrite engine to append a query string part of the substitution string to the existing string, instead of replacing it. Use this when you want to add more data to the query string via a rewrite rule.

    Apache mod_rewrite doc
    Scheint genau das zu sein, was du brauchst. Du sollst das benutzen, wenn du mehr Daten hinzufügen willst. Klingt passend. ^^

  4. #4
    Also bei RedirectMatch kann ich am Ende keine solchen Schalter anhängen, sonst bekomm ich einen 500er-Fehler. Und mit RewriteRule komm ich nicht wirklich zurecht ... da wirkt sich die Regel gar nicht auf die URL-Eingaben aus ... naja, muß ich noch weiter rumprobieren *g*

    [edit] Hab grad über Google einen Eintrag gefunden, der darauf hinweist, dass die fälschliche Maskierung des Fragezeichens wohl ein alter Apache-Fehler ist ... da muß ich wohl bei meinem Provider anfragen.

    Geändert von R-Craven (22.06.2006 um 23:02 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •