URL Maskierung per htaccess funktioniert nicht in Joomla 4

  • Hallo liebe Forumsmitglieder,


    ich habe nach einer Neuinstallation einer Webseite mit Joomla 4 das Problem, dass URL Maskierungen mittels htaccess nicht mehr funktionieren.


    Ich nutze Joomla mit Simple Page Builder und habe z.B. eine Seite, die folgendermaßen aufgerufen werden kann:


    Code
    https://example.org/index.php/component/sppagebuilder/?view=page&id=1


    Diese müche ich nun per htaccess maskieren:


    Apache Configuration
    RewriteEngine On
    RewriteRule ^test$ index.php/component/sppagebuilder/?view=page&id=1


    Ergebnis:


    404 Error


    Das direkte Aufrufen mittels


    Code
    https://example.org/index.php/component/sppagebuilder/?view=page&id=1

    klappt problemlos.


    Auch das hier funktioniert:


    Apache Configuration
    RewriteRule ^test$ foobar.php


    Sobald ich aber die index.php maskieren will klappt nichts mehr.

    Das funktionierte hervorragend in Joomla 3. In Joomla 4 funktioniert es nicht mehr.


    Hat irgendwer eine Ahnung, woran das liegen könnte?


    Vielen Dank für eure Mühe und liebe Grüße


    pro

  • Mir geht es darum einige Microsites für unsere Kunden zu erzeugen, die nur aus einer einzelnen Seite bestehen und mit einer einfachen URL erreichbar sein sollen. Wir haben hier den Bedarf kurzfristig und nur für ein paar Wochen einzelne Seiten zur Verfügung zu stellen, die dann z.B. so erreichbar sein sollen:


    example.org/kundenseite


    Das funktionierte per htaccess prima in Joomla 3 und nicht in Joomla 4.


    Liebe Grüße


    pro.

  • Getestet in 2 Joomla 4. Eine mit der Joomla 3 .htaccess, eine mit der neuen von Joomla 4.


    Trage ich nach

    Code
    ## Begin - Custom redirects

    ein

    Apache Configuration
    RewriteRule ^testmich$ /index.php/component/sppagebuilder/?view=page&id=1 [R=301,NC,L]

    funktioniert das überall. Ich lande zwar auf einer 404, aber in der Adresszeile steht die gewünschte Umleitungsadresse, die halt bei mir eine 404 ist, weils die halt bei mir nicht gibt.


    Die eckigen Klammern sind extrem wichtig. Wenn mehrere RewriteRules in einer .htaccess sind, muss z.B. in unserem Beispiel klar gemacht werden, dass es eine alleinstehende Zeile ist. Das macht bspw. das "L" klar.


    EDIT: Man kann Glück haben, dass das auch mal ohne [] funktioniert, je nachdem, wo die Zeile steht, aber man sollte sie halt tunllichst abschließen.

  • Hmmm, OK.


    Wenn ich das so ändere setzt er mir den kompletten Serverpfad in die URL also:


    /var/www/web123/html/j4/


    Das funktioniert hier bei mir also nicht. Eine Idee warum das jetzt so passiert?


    Ach und noch was:

    Mir ist wichtig, dass die ursprüngliche URL stehen bleibt und eben nicht die maskierte im Browser ausgegeben wird. Heißt das ich muss die 301 in den eckigen Klammern einfach weglassen?


    Danke für deine Mühe und liebe Grüße


    pro

  • Mir ist wichtig, dass die ursprüngliche URL stehen bleibt und eben nicht die maskierte im Browser ausgegeben wird

    Das ist trivial nicht möglich. Ich habe da mal angebliche Lösungen gefunden. Die hatten allerdings so viele Haken und Ösen bzgl. Joomla und Server, dass ich lieber im Joomla zusätzliche, versteckte Menüpunkte angelegt habe, die eben auf die Wunschziel-Url zeigen anstatt mir eine komplett neue .htaccess oder sogar httpd.conf aufzusetzen. Kurz: Muss ich passen.

    Eine Idee warum das jetzt so passiert?

    Keine Ahnung. Fehlkonfiguration im Server? Oder verquaste wirre Struktur bis zur Webseite, bspw. eine (Sub-)Domain, die nicht direkt auf den Joomla-Ordner eingestellt ist, sondern sich in einem Unterordner einer bestehenden, anderen Domain befindet? Eine wirre, übergeordnete .htaccess in einem Ordner oberhalb des Joomla-Ordners? Die vererben sich ja nach unten. RewriteBase nicht gesetzt, obwohl beim Hoster nötig? Kurz: Muss ich auch passen.