URL Rewrite mit Joomla erzeugt error 404

  • Hi,


    Wir hätten ein kleines Hindernis bei einer Website eines Kunden auf dem liveConfig-Server. Wir nutzen Joomla (Version 4.4.6) mit PHP 8.3.9.

    Ich habe im restlichen Forum leider keine Antworten gefunden und wir wollen mit den Seiten bald online gehen, darum meine Frage.


    Wir wollen einen URL-Rewrite über Joomla nutzen, um das index.php aus den URLs zu bekommen. Sobald ich das Rewrite jedoch im Backend aktiviere und die htaccess.txt in .htaccess umbenenne, findet er die Website nicht mehr auf dem Server (Not Found - The requested URL was not found in this server - Apache Server at ... Port 80).


    Wir machen es grundsätzlich immer gleich und hatten dieses Problem bis jetzt noch nicht. Über die Joomla Foren habe ich leider auch nichts herausgefunden. Ich wurde nur informiert, dass es am Server liegen kann.


    Liebe Grüße & danke für die Hilfe / Unterstützung / Informationen

    Emily

  • Hallo Martin,

    Danke für deinen Vorschlag! :)

    Habe es mit Umbenennen der htaccess.txt in .htaccess probiert und zusätzlich auskommentieren, sowie nur mit auskommentieren. Hat leider beides trotzdem das gleiche Ergebnis gebracht. Ich kopiere einmal die ersten Zeilen der Datei herein die gehen.

    TExt:

    ## Can be commented out if causes errors, see notes above.

    Options +FollowSymlinks

    Options -Indexes


    ## No directory listings

    <IfModule mod_autoindex.c>

    IndexIgnore *

    </IfModule>


    ## Suppress mime type detection in browsers for unknown types

    <IfModule mod_headers.c>

    Header always set X-Content-Type-Options "nosniff"

    </IfModule>


    Ich muss sagen, ich hab in dieser Datei noch nie etwas umgeschrieben etc. daher bin ich in diesem Fall ein Laie.


    Danke auf jeden Fall für den Einfall von dir!

    LG
    Emily

  • - bitte prüfen, ob eine index.html oder weitere Index-Dateien rumliegen.

    - "Options +SymlinksIfOwnerMatch" setzen

    - sowie mit "Options -MultiViews" die Multiviews deaktivieren


    Das hat in der Vergangenheit gereicht.

    Hallo und danke für deine Antwort antondollmair :)


    Gleich einmal vorweg: Ich bin leider kein Profi auf dem Gebiet Datenbanken. Daher folgende Fragen:


    Es liegt eine index.php im root-Ordner. Soll die weg? Wir haben grundsätzlich auch in jedem Image-Folder eine index.html, um unerwünschte Bild-Downloads zu uverhindern. Könnte das zu Problemen führen (also zu unserem Problem gerade vor allem)?


    "Options +SymlinksIfOwnerMatch" setze ich quasi statt "Options +FollowSymlinks" und kommentiere in der htaccess nichts aus?

    "Options -MultiViews" dann statt "Options -Indexes", oder zusätzlich in eine weitere Zeile dazu?


    Liebe Grüße und viiielen Dank, dass hilft mir gerade sehr weiter!

    Emily

  • Hallo Emily,

    Gleich einmal vorweg: Ich bin leider kein Profi auf dem Gebiet Datenbanken. Daher folgende Fragen

    Ach, wir sind ja auch noch beim Webserver ;)



    Zitat

    Es liegt eine index.php im root-Ordner. Soll die weg? Wir haben grundsätzlich auch in jedem Image-Folder eine index.html, um unerwünschte Bild-Downloads zu uverhindern. Könnte das zu Problemen führen (also zu unserem Problem gerade vor allem)?

    Nein, beides belassen. Allerdings sollten neben der index.php keine weiteren .HTML-Dateien mehr liegen.


    Zitat

    "Options +SymlinksIfOwnerMatch" setze ich quasi statt "Options +FollowSymlinks" und kommentiere in der htaccess nichts aus?

    Korrekt.


    Zitat

    "Options -MultiViews" dann statt "Options -Indexes", oder zusätzlich in eine weitere Zeile dazu?

    Zusätzlich einfügen, geht auch in einer Anweisung: "Options -MultiViews -Indexes"


    Zuletzt: Error-Log aktivieren und auf dieses, nach mehrfachen Seitenaufrufen, Fehler prüfen.

    Viele Grüße,
    Anton

  • Hallo Anton,


    Hallo Emily,

    Ach, wir sind ja auch noch beim Webserver ;)

    Das war ein gutes Beispiel meiner Unwissenheit! ;)

    Nein, beides belassen. Allerdings sollten neben der index.php keine weiteren .HTML-Dateien mehr liegen.

    Passt! Neben der index.php ist sonst keine html-Datei mehr, also sollte es passen.


    Nachdem ich die Schritte von dir befolgt habe, ist was ganz lustiges passiert. Zur Erklärung der Situation dieser Website: Es gibt derweilen eine Live-Seite die online ist, die "alte Seite" und diese läuft mit PHP 7.4.33. Wir arbeiten zur Zeit auf einer Subdomain www....../2024 mit PHP 8.3.9. Und nachdem ich die htaccess angepasst habe und das URL-Rewrite in Joomla eingeschaltet habe, führt die Website nun auf eine Unterseite der alte Website.


    Den Error-Log habe ich jetzt aktiviert.


    Noch einmal Danke und einen guten Start in den Tag!

    Emily

  • Nachdem ich die Schritte von dir befolgt habe, ist was ganz lustiges passiert. Zur Erklärung der Situation dieser Website: Es gibt derweilen eine Live-Seite die online ist, die "alte Seite" und diese läuft mit PHP 7.4.33. Wir arbeiten zur Zeit auf einer Subdomain www....../2024 mit PHP 8.3.9. Und nachdem ich die htaccess angepasst habe und das URL-Rewrite in Joomla eingeschaltet habe, führt die Website nun auf eine Unterseite der alte Website.

    Bitte passt die Ordner-Struktur an und verschiebt die Dateien:


    http://www.example.com -> htdocs/example.com

    2024.example.com -> htdocs/joomla2024


    Hierdurch ist die Trennung gewährleistet. In "joomla2024" muss dann auch eine eigene .htaccess von Joomla liegen.

  • Hallo Anton,


    Die Ordnerstruktur habe ich genau so :) Also ich arbeite schon die ganze Zeit in der Datei htdocs/2024/htaccess.txt.

    Die alte Seite ist im htdocs/website-2022 untergebracht.


    Die Subdomain hat sich nun in 2024. ... .at geändert und ich habe es jetzt gleich noch einmal mit deinen Infos probiert. Es funktioniert! 🎉


    Danke danke danke für die Unterstützung! Jetzt können wir diese Woche noch online gehen :)


    LG und einen schönen sommerlichen Tag!

    Emily

  • Hallo Anton,


    Ich bin jetzt noch über ein Problem gestolpert und kann es gerade nur in den Bezug zum URL-Rewrite setzen. Die Seite ist (war) zweisprachig in Joomla aufgesetzt. Seit dem Rewrite kann ich nun nicht mehr auf die englische Version umschalten und auch nichts mehr bearbeiten. Er haut mir immer ein /en/de in meine URL statt nur /en. Kann das mit den neuen Einstellungen der .htaccess zusammenhängen?


    Danke noch einmal für die große Hilfe!

    LG
    EMily

  • Hallo


    dann müsste die htaccess Regel erweitert werden.


    Beispiel:


    <IfModule mod_rewrite.c>
    RewriteEngine On


    RewriteRule ^de/(.*)$ index.php?lang=de&$1 [NC,L]
    RewriteRule ^en/(.*)$ index.php?lang=en&$1 [NC,L]


    # Ensures that requests to the root (/) are also handled with the appropriate language prefix


    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^/(.*)$ index.php?lang=de&$1 [NC,L]

    </IfModule>


    Mit freundlichen Grüßen

    Martin Krüger

Jetzt mitmachen!

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