Klammer und Slash aus URL entfernen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Klammer und Slash aus URL entfernen

    Hi,

    ich habe ein Problem beim mod_rewrite

    Wenn eine meiner URL's so aussieht:

    http://www.meine-domain.de/guide-Mon...ner+(m/w).html

    sieht meine Regel so aus:

    RewriteRule ^guide.html$ index.php?page=guide [L]
    RewriteRule ^guide\-argument\-([^-]+).html$ index.php?page=guide&op=arg&title=$1 [L]
    RewriteRule ^guide\-([^-]+).html$ index.php?page=guide&op=readGuide&title=$1 [L]
    RewriteRule ^guide\-([^-]+)\-([0-9]+).html$ index.php?page=guide&op=readGuide&title=$1&pg=$2 [L]

    Die Regel funktioniert nur, wenn keine Klammer oder / drin ist.
    Wie kann ich es schaffen, dass er nun auch die Klammer und den Slash umschreibt oder ignoriert?

    Gruß Jörn

  • #2
    Die URL richtig schreiben. Ein Slash darf in einem Dateinamen nicht vorkommen.

    Kommentar


    • #3
      kein Slash

      Das kann nicht sein!
      Schau dir mal die URL an, bei der geht es ja auch

      Restaurants und Gastronomie - Beratung für Businesspläne,Gesundheitsausweis,Speisekarten und Existenzgründung

      Jörn

      Kommentar


      • #4
        Dort ist es ein Parameter, da es hinter dem ? steht.
        Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!

        Kommentar


        • #5
          okay

          Okay, ich verstehe.
          Kann ich den Titel, der mir übergeben wird, so manipulieren, dass er symatisch korrekt als URL dargestellt wird und wenn je, wie?

          Kommentar


          • #6
            Du kannst den Titel durch Suchen und Ersetzen so umformen, dass es als URL syntaktisch korrekt ist.
            Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!

            Kommentar


            • #7
              URL Encoding ? Wikipedia

              / entspricht %2F


              Oder mit PHP:

              http://de.php.net/manual/en/function.rawurlencode.php

              Kommentar


              • #8
                <ironie>bei "Montageplaner%20%29m%2fw%29" weiß gleich jeder, was gemeint ist</ironie>

                Ich finde die Ersetzungsmethode besser: "Montageplaner-(m-w)"
                Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!

                Kommentar


                • #9
                  Wie könnte ich es denn am besten umsetzen?

                  Hier die Stelle im Quelltext:

                  PHP-Code:
                  foreach ($result as $row) {
                                  
                  $id intval($row['id']);
                                  
                  $nome outCode($row['nome']);

                                  echo 
                  "<div id='block_linkstyle'><a href='index.php?page=guide&op=readGuide&title=".rawurlencode($nome)."' title='$nome'>$nome</a></div>\n";
                          } 

                  Kommentar


                  • #10
                    Du arbeitest doch mit mod_rewrite, oder? Dann darfst du aber keine Links veröffentlichen, die über Parameter arbeiten, das soll doch mod_rewrite erledigen. Du erzeugst nur Links wie "guide-Montageplaner-(m-w)" und das kannst du mit preg_replace machen, also alle verbotenen Zeichen durch z. B. - ersetzen.
                    Zuletzt geändert von AmicaNoctis; 23.08.2009, 14:42.
                    Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!

                    Kommentar


                    • #11
                      hmm

                      das versteh ich nicht.
                      An welcher Stelle muss ich nun manipulieren, direkt im Quelltext oder doch in der .htaccess ?

                      Kommentar


                      • #12
                        Du musst im Quelltext Links erzeugen, die deine .htaccess dann übersetzen kann. Wenn du die bereits übersetzten Links erzeugst, bringt die .htaccess ja nichts.
                        Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!

                        Kommentar


                        • #13
                          Zum x-ten Mal: Keine Domains verlinken, die euch nicht gehören!
                          Bitte entferne die Verlinkung, und gewöhne dir an, example.com/.net/.org für Beispiel zu nutzen.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar

                          Lädt...
                          X