ilch Forum » Allgemein » HTML, PHP, SQL,... » mod_rewrite

Geschlossen
  1. #1
    User Pic
    Soldat53b gelöschter User
    Hallo, ich wollte mal fragen ob es irgentwie möglich ist mod_rewrite in ilch einzubauen. Also das man auf einer Seite im Adminbereich sagt wie die einzelnen seiten benannt werden sollen.

    Also man sagt: die newsseiten sollen die url haben /news/(zahl).htm

    Also das aus URL.de/index.php?news-1
    das wird: URL.de/news/1.htm

    und aus
    index.php?forum = url.de/forum
    index.php?forum-showcat-19 = url.de/forum/19.htm
    index.php?forum-showtopics-43 = url.de/forum/19/43.htm
    index.php?forum-showposts-124 = url.de/forum/19/43/124.htm

    oder so ähnlich?


    verwendete ilchClan Version: 1.1 N
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    iVirus Mitglied
    Registriert seit
    28.07.2008
    Beiträge
    1.250
    Beitragswertungen
    30 Beitragspunkte
    ..;) oben rechts die suche >> URL REWRITE

    und schon haste waste brauchste...

    ...so wie du es meinst gibts es nicht.. da wird eifnach aus

    blub.de/index.php?forum ===>> blub.de/forum.html


    aber überzeug dich selbst.. hier der der link
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Soldat53b gelöschter User
    Ok danke,

    Hab dazu jetzt noch ne frage bzw 2.

    1:
    $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)\">%Uis',"href=\"\\1.html\">",$c);

    Das lässt ja alles umändern was ein href drin hat:
    [<a>/...] href="index.php?[Seite]">[Name]

    in
    [<a>/...] href="[Seite].html">[Name]


    Aber es funktioniert nicht bei solchen links:
    <a href="index.php?forum-showcat-19" style="color:#FFFFFF;">News</a>

    oder
    <a href="index.php?forum-showcat-19" title="News">News</a>


    Wie kann man in dem preg_replace noch belibige sachen hinter href="..." stehen lassen?

    Also:
    $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)\"[b]HIER[/b]>%Uis',"href=\"\\1.html\">",$c);


    2:

    Gibt es eine Möglichkeit URL/forum-newpost-40106.html in URL/forum/newpost/40106.html umzuändern? also die - durch / ersetzen zu lassen?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Soldat53b gelöschter User
    *Help*

    Ich hab mir dazu einige sachen durchgelesen aber ich versteh nix so wirklich, nur so einzelne fragmente...


    Zuletzt modifiziert von Soldat53b am 20.01.2010 - 22:27:58
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nimm einfach das > raus, Problem könnte dann sein, wenn irgendwo in einem Text so ein Link steht, der dann auch umgewandelt wird, > ist ein Zeichen was in HTML aber mit &gt; dargestellt wird und deswegen vorh nicht der Fall war.

    Andere Möglichkeit ist, dass du halt noch beliebige Zeichen erlaubst, dass wäre dann, hoffe ich zumindest, habs nicht getestet.

    $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)\"([^>]*)>%Uis',"href=\"\\1.html\"\\2>",$c);
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Soldat53b gelöschter User
    ZitatZitat geschrieben von Mairu

    $c = preg_replace ('%href="index.php?([-0-9A-Z]+)"([^>]*)>%Uis',"href="\1.html"\2>",$c);



    Du bist ein Gott, danke das Funkst... lachenlachenlachenlachenlachenlachenlachenlachenlachenlachenlachen

    Für alle die diese Änderung auch brauchen:
    function footer ($exit = 0) {
          echo $this->html[1];
            unset ($this->html[1]);
    
    $c = ob_get_clean();
    $c = preg_replace ('%href=\"\?([^\"]+)\"%Uis',"href=\"index.php?\\1\"",$c);
    $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)#([a-zA-Z0-9]+)\">%Uis',"href=\"\\1.html#\\2\">",$c);
    $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)\"([^>]*)>%Uis',"href=\"\\1.html\"\\2>",$c);
    $c = preg_replace ('%action=\"\?([^\"]+)\"%Uis',"action=\"index.php?\\1\"",$c);
    $c = preg_replace ('%URL=\?([^\"]+)\"%Uis',"URL=index.php?\\1\"",$c);
    
    echo $c;
    
    
        if ($exit == 1) {
          exit();
        }
        }


    Jetzt wär nur noch die frage ob/wie man die - in / umwandeln kann aber das wäre nur ein extra.

    PS: nochmals danke
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das geht schon, Problem ist dabei, dass du in der htaccess dann einige Sachen beachten musst, da / normal halt ein anderes Verzeichnis ist, und man ja trotzdem noch Verzeichnisse aufrufen können will.

    Man muss also in der htaccess zumindest für den include Ordner eine Ausnahme schaffen, dass dies wie ein normaler Aufruf gehandelt wird.

    In den links kann man dann - durch / ersetzen, das müsste man wohl mit einer Funktion die man über das preg_replace aufruft machen, ich wüsste jetzt zumindest nicht, wie man in dem bisherigen Aufruf sonst die Zeichen ersetzen kann.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Soldat53b gelöschter User
    OK problem verstanden.

    Wär dann auch zu kompliziert. Das reicht so ja auch. Also danke nochmal.


    PS: VLLT wär mod_rewrite was für die nächste Ilch version
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten