.htaccess/mod-rewrite problem

  • Hallo,
    ich bin WP-noobie, aber habe es geschafft soweit alles zu installieren.

    Jedoch will ich meine externen Links ala "webseite.de/externerlink" maskieren.

    Dazu habe ich die .htacces folgendermassen konfiguriert:

    Leider endet der Aufruf auf einer 404-seite!
    Ich habe es auch mit

    Apache Configuration
    RewriteRule ^externerlink\.html$ [URL]http://externerlink.de/?p=suche[/URL]  [R=301,L]

    und

    Apache Configuration
    RewriteRule externerlink.html$ http://externerlink.de/?p=suche  [R=301,L]

    versucht, aber kein Erfolg!
    Es endet immer auf einer 404-seite!

    Es ist mittlerweil früh am morgen und ich bin ratlos...
    Was mache ich falsch? Hilfe!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich verstehe zwar nicht, was da genau passieren soll, aber da die "externlink"-Regel erst nach dem "RewriteRule . /index.php [L]" kommt, wird sie nie ausgeführt. Wenn überhaupt, muß sie davor stehen. Obwohl mir nicht ganz klar ist, wie das funktionieren soll.
    Am besten auch einfach mal die mod_rewrite Dokumentation lesen:
    Apache module mod_rewrite

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Ich habe sämtliche Mod-rewrite doc's gelesen, aber es passiert nicht das, was passieren soll.

    Wenn ich im browser "meineseite.de/externerlink.html" eingebe, soll der link auf eine externe seite "externerlink.de/?p=suche" umleiten. Das soll übrigens passieren, oder was meinst du?

    Ich habe nun das [L] bei der index.php Regel entfernt und es kommt immernoch ein 404!

    Ich muss doch irgendwas falsch machen?

  • Gelesen vielleicht, aber nicht verstanden ;-)
    Ich hatte ja geschrieben, daß die Regel, wenn überhaupt davor stehen muß.
    Also z.B. so:

    Apache Configuration
    RewriteEngine On
    RewriteBase /
    
    
    RewriteRule ^externerlink\.html$ http://google.de/search?q=putzlowitsch  [R=301,L]
    
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    Wenn die externlink-Regel erst nach der WP-Regel kommt, ist es egal, ob da ein [L] steht oder nicht. Durch die Regel wurde ja aus der URL bereits ein '/index.php' gemacht, da kann dann das nachfolgende externlink nicht mehr passen, obwohl es noch ausgeführt wurd.

    Nachtrag: Außerdem sollte die Regel außerhalb von # BEGIN ... # END WordPress stehen, sonst ist sie beim nächsten Aufruf der Permalinkeinstellungen wieder verschwunden. Es sei denn, die .htaccess ist eh von Hand konfiguriert und für WP schreibgeschütz.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

    Einmal editiert, zuletzt von Putzlowitsch (7. August 2007 um 19:13)

  • Wat'n Gefriemel! :mrgreen:
    Aber ich hab's endlich geschafft! Du hattest Recht.

    Ich hab am Ende dennoch 4 mal was umschreiben müssen, da ich die ganze Zeit das "L" im [] vergessen hatte.

    Ich musste tatsächlich nur die Rewrite-regel versetzen.

    Soviele details, bei so wenig Text! :?

    Also vielen Dank! :-D

  • Naja, bei so Rumgfriemle ist der Lerneffekt immer am größten. Wenn man irgendwo was abschreit, reinsetzt und es funktioniert, weiß man dann nicht, warum eigentlich :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Es ist zum heulen!
    Ich dachte jetzt geht alles, aber: Ich fügte einige Links hinzu, aber ab dem 4ten oder 5ten Link kam wieder die 404-Seite! Obwohl ich alle brav wie beschrieben eingetragen habe!
    Dann probierte ich es mit

    Redirect Permanent /externerlink http://externerLink.de

    aber das gleiche ende!
    Was mach ich falsch?

  • Kannst Du denn mal deine .htaccess hier posten?

    Beim Weiterleiten mit Redirect muß die URL exakt so angegben werden, wie sie verwendet wird. Also gegebenfalls /externerlink.html. Man kann aber auch RedirectMatch verwenden, dann paßt es auch auf Teilstrings. Außerdem muß das Modul mod_alias verfügbar sein.

    Bei mod_rewrite sollte es aber auch mit mehr als 4 oder 5 Einträgen funktionieren, da ist vielliecht doch irgendwo ein kleiner Fehler drin.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Mittlerweile habe ich es selbst herausgefunden, da ich keine Geduld hatte auf eine Antwort zu warten und ich wollte es unbedingt selber herausfinden ala trial and error.

    Ich hatte vergessen <IfModule mod_alias.c> anzugeben. Ich habe es dann vor den Wordpress-teil gesetzt und auch wieder geschlossen, dann ging's!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!