htaccess weiterleitung bzw. Seiten sollen nicht aufrufbar sein.

  • Hallo
    mein Problem geht schon ein wenig ans Eingemachte und mit einem redirect 301 ist es leider auch nicht lösbar.


    Auf meiner Seite gab es eine durch K2 ausgewählte Seitennummerierung. Also die aktuellsten 10 Artikel sind auf der Startseite die älteren sind darunter über seite 2 , 3 usw. anklickbar.


    SEf urls ist aktiv, url rewrite auch. htaccess ist umbenannt. alles funktioniert.


    Nun hat sich ein Anzeigenpartner gemeldet, der nur eine/seine Werbung für die Startseite haben will, also "einen" ausgehenden Link, dass sein diagnose tool ihm hunderte von Seiten ausgibt. Alle nach der Methode: meindedom.de/?start=10 usw. Ich kann jeden Wert angeben solange ich Artikel haben und das geht bis 2008 zurück und ich kann diese Seite dann in der Aufmachung der Startseite sehen, mit allen nur für die Startseite aktivierten Modulen.


    Diese Links waren nie verbaut oder in einem Menü. Mittlerweile habe ich auch die Seitennummerierung von der Startseite genommen. Um ältere Artikel zu lesen muss man nun über andere Menüeinträge gehen.
    Aber die Links funktionieren immer noch mit Ziel auf die Startseite.


    Sowohl dieser art
    meinedom.de/index.php?start=936
    oder wie halt oben beschrieben
    meinedom.de/?start=936


    Das beides geht liegt wohl der mod Rewrite geschichte und der Darstellung der seiten ohne index.php und der SEF.


    Nun dachte ich mir machste einfache ein 301 Umleitung über die htaccess und gut ist. von wegen. Interessiert joomla gar nicht.


    Ich finde nirgends Lösungen oder rauch nur Ansätze hierzu und darum bin ich nun hier.
    Kann mir jemand weiterhelfen?
    Vielen Dank!
    Gruß Litho

  • Hi,
    probiert hatte ich folgendes.
    #
    RewriteRule ^start=.* / [R=301,L]
    RedirectMatch 301 ^/?start=**$ https://www.snookermania.de/
    Redirect 301 /index.php?start=936 https://www.snookermania.de/


    aber wie gesagt ging nicht.
    Die Anzeige ist ein Textlink der in einem Modul (nur Startseite) steht. Aber solage dieses auch jedes mal bei den Seitaufrufen mit angezeigt wird löst das nicht mein Problem.



  • Code
    RewriteCond %{REQUEST_URI} ^/$
    RewriteCond %{QUERY_STRING} ^start=\d+(&|)
    RewriteRule .* /? [R=301,NC,L]


    Query-String muss mit start=[Zahl] beginnen. Das Fragezeichen in letzter Zeile ist wichtig, sonst endlosredirect


    Zusätzlich kannst in Google Console URL-Parameter ignorieren lassen. Hängt nat. davon ab, ob sie anderswo nicht Sinn machen.


    Kann man bei K2 die Anzahl anzuzeigender Beiträge nicht limitieren, so, dass ein Beitrag 960 gar keinen Sinn macht? Nur so eine Idee. Klingt ja irgendwie nach einem Blog-Layout oder so was.

  • Gepriesen und gedankt. Das tut es endlich und gleich auf Anhieb!!! Gratulation und dank.


    Kannst du mir auch sagen wie ich diese umleiten kann
    meindom.de/indey.php?start=123456


    kann ich das kopieren und das Fragezeichen durch ein ^? ersetzen?
    also so?
    RewriteCond %{REQUEST_URI} ^/$
    RewriteCond %{QUERY_STRING} ^index.php^?start=\d+(&|)
    RewriteRule .* /? [R=301,NC,L]


    und ja man kann bei K2 die Anzahl der Artikel pro seite reglementieren und auch die Seitennummerierung weglassen. Ich denke nur Tante G ist nicht doof. und wenn die einmal sehen dass es mit dem Code geht dann dann testen die aus...

  • und wenn die einmal sehen dass es mit dem Code geht dann dann testen die aus...


    Im Normalfall nicht. Aber viele Seiten haben ja Ecken (Schleichwege), bspw. über die Breadcrumbs, ARchiv-Views, wo Suchmaschinen auf solche Links geführt werden oder doofe, nicht kontrolleirte Sitemaps. Kann nat. sein, dass G mittlerweile ob seines beschäftigungstherapeutischen Auftrags komplett ausgetickt ist. Bei mir konnte ich das aber noch nicht anhand G-Index beobachten.


    Wenn du start generell ausschließen willst, brauchst du die erste Zeile meines Codes oben (RewriteCond %{REQUEST_URI}) gar nicht.


    Wenn genau dein weiteres Muster getroffen werden soll


    Code
    RewriteCond %{REQUEST_URI} ^/index.php$
    RewriteCond %{QUERY_STRING} ^start=\d+(&|)
    RewriteRule .* /? [R=301,NC,L]


    Bin nicht ganz sicher, ob erste Zeile den / braucht oder nicht.


    REQUEST_URI ist immer der Teil vor dem ?
    QUERY_STRING immer der Teil hinter dem ?
    In letzter Zeile dient im Unterschied das ? als Marker, dass der QueryString nicht an die neue URL weitergereicht werden soll.


    In den ersten beiden Zeilen hätte ein Fragezeichen eine andere Bedeutung als ? ; sozusagen. Wird meist als sog. Quantor des regulären Ausdrucks interpretiert (Das wollte ich schon immer mal in einem Forum schreiben ;-) Wichtig-wichtig-tu.).


    Das Dacherl in einem regulären Ausdruck bedeutet "fängt exakt so an". Das $ bedeutet "endet exakt so".
    Also nur, wenn vor dem Querystring-Separator-Fragezeichen der URL exakt /index.php steht und nicht etwa /index.php/diese-Seite/blubb matcht das Muster.

  • lege Deine Hände auf die Tastatur und spüre die wäre meines aufrichtigen dankes!
    Es tut es sogar viel zu gut.
    Nun nimmt er auch die Unterseiten mit.
    also
    meinedom.de/international/?start=123
    werden nun auch auf die Startseite geschickt, obwohl da die Seitennummerierung erwünscht ist...
    Das hat er jetzt aber erste gemacht als ich den zweiten Codeschnipsel eingebaut hatte meine. ich teste nochmal.

  • Also test gemacht.
    der "/" den braucht es. (Es passiert sonst gar keine Umleitung)


    damit ist aber auch der Umleitung total Egal was vor dem Slash steht. also Unterverzeichnisse wie /national/ werden ignoriert und umgeleitet.
    Wenn ich dem String jetzt nur noch beibringen könnte das er dass nur im Hauptverzeichnis macht dann wäre es genau richtig.

  • Weiß jetzt nicht welche du genommen hast

    Code
    RewriteCond %{REQUEST_URI} ^/$RewriteCond %{QUERY_STRING} ^start=\d+(&|)RewriteRule .* /? [R=301,NC,L]


    leitet um:
    https://example.org/?start=12
    https://example.org?start=12


    aber nicht:
    https://example.org/content-component?start=12
    https://example.org/content-component/?start=12


    Ein zusätzliches

    Code
    RewriteCond %{REQUEST_URI} ^/index.php$
    RewriteCond %{QUERY_STRING} ^start=\d+(&|)
    RewriteRule .* /? [R=301,NC,L]


    leitet um:
    https://example.org/index.php?start=12


    aber nicht:
    https://example.org/index.php/?start=12
    https://example.org/index.php/content-component?start=12
    https://example.org/index.php/content-component/?start=12


    Man könnte beide auch in einem Block kombinieren. Hab ich aber keine Lust ;-)


    Du musst exakte Beispiel-URLs posten, wo es nicht klappt. Also so wie ich. "URLs automatisch erkennen" im erweiterten Editor deaktivieren.

  • Beim ersten Quellcode bin ich ganz bei Dir.
    beim zweiten


    Code
    RewriteCond %{REQUEST_URI} ^/index.php$RewriteCond %{QUERY_STRING} ^start=\d+(&|)RewriteRule .* /? [R=301,NC,L]


    leitet um:


    https://example.org/index.php?start=12


    aber auch diese
    leitet um: https://example.org/subfolder/?start=12
    und das sollte es nicht tun.
    siehe
    www.snookermania.de
    www.snookermania.de/national/?start=10


    Warum auch immer nach dem Hinzufügen der Zeilen mit der Index.php werden die Seiten aus einem subfolder nur mit ?start= auch umgeleitet.


    Und wenn es Deine Lust irgendwie beflügelt können wir da auch gerne kostenpflichtigen Support daraus machen. Ich weiß Deine Arbeit hier zu schätzen.

  • Warum auch immer nach dem Hinzufügen der Zeilen mit der Index.php werden die Seiten aus einem subfolder nur mit ?start= auch umgeleitet.


    Ja, hast recht. Das kollidiert mit den Joomla-Zeilen unterhalb "## Begin - Joomla! core SEF Section.". Ändert auch andere Reihenfolge und Umformulieren nichts.


    Würde ich mir also für diesen Fall ein Plugin schreiben, das mit JUri in onAfterRoute arbeitet.