Komplizierte 301 Umleitungen

Hallo, ich habe eine bestehende Seite in der Struktur https://www.domain.de/seite.html oder https://www.domain.de/ordner/seite2.html. Ziel soll werden: https://domain.de/seite oder https://domain.de/ordner/seite2

Es soll also das www und das.html wegfallen. Wie mache ich das? Von www . auf non www umleiten habe ich hinbekommen, aber in Kombi mit den Wegfall des .html wars vorbei ...
was für eine Seite ist es denn? Stellst du von WP auf Html um oder andersrum? 

Eventuell kommt dies hier zum Zuge: RedirectMatch 301 (.*).html$ http://www.domain.com$1.php

 
Eventuell kommt dies hier zum Zuge: RedirectMatch 301 (.*).html$ http://www.domain.com$1.php
Nein, gar nicht. Das würde example.com/seite.html auf example.comseite.php umleiten. Das klingt kontraproduktiv. ?

Es soll also das www und das.html wegfallen.
Warum...? ?

Und womit?

Von www . auf non www umleiten habe ich hinbekommen, aber in Kombi mit den Wegfall des .html wars vorbei
Es wäre ganz schön, wenn du zukünftig deine eigenen Versuche noch teilst, dann sieht man, dass du dich bemüht hast und kann irgendwo ansetzen.

Mit mod_rewrite wäre sowas denkbar (ungetestet und mitten in der Nacht getippt ;-)):

RewriteEngine On

//Umleitung www auf nicht-www
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301,NC]

//Umleitung von allem, das auf html endet auf die Variante ohne html
RewriteRule (.*)\.html$ $1 [R=301,L]

//Ausgabe der Datei
RewriteCond %{REQUEST_URI}\.html$ -F
RewriteRule .* %{REQUEST_URI}\.html [L]


Ist jetzt ungetestet, es ist möglich, dass da noch eine Condition rein muss.

Da ich eben nicht weiß, was du benutzt und ob bei Aufruf der Variante ohne HTML trotzdem die Variante mit der HTML-Endung ausgeliefert werden soll, ist das schwer zu beantworten.

BTW: Kompliziert ist das wirklich nicht.

 
Zuletzt bearbeitet von einem Moderator:
Da ich eben nicht weiß, was du benutzt und ob bei Aufruf der Variante ohne HTML trotzdem die Variante mit der HTML-Endung ausgeliefert werden soll, ist das schwer zu beantworten.

BTW: Kompliziert ist das wirklich nicht.
ähm, pregMätch Zeugs ist schon kompilisiert

Es sieht mal danach aus das er von Statisch auf "WPmode" gehen will (WP hat ja keine Ändung oder hat sich das geändert?)

Und da ergibt sich das problem ...  ähm, ne das tuts nicht, merk ich gerade beim schreiben

Also, wenn er von Statisch auf WP wechselt, dann werden hier die alten URLs abgefangen und auf die neuen geleitet = richtig!

Wenn da aber .... was auch immer ... 

FRAGE bleiben die "alten URLs" mit dem html aufrufbar? dann entsteht hier DC? oh ne, was schreib ich gerade für einen müll ...

ich häng mich zum Schlup an die Frage "Warum?" das html hinten weg soll ..... das ist so eine WPmake und ich finds hässlich

 
ähm, pregMätch Zeugs ist schon kompilisiert
Braucht man hier ja nicht, bis auf .* ist hier praktisch gar nichts notwendig. Einfacher geht es kaum.

FRAGE bleiben die "alten URLs" mit dem html aufrufbar? dann entsteht hier DC? oh ne, was schreib ich gerade für einen müll ...
Bei meiner Variante nicht. Die wichtigere Frage ist, was der Server denn ausliefern soll. Einfach nur auf eine Variante ohne .html umzuleiten löst nichts, wenn die Grundlagen nicht stimmen. Das wissen wir aktuell nicht.

das ist so eine WPmake und ich finds hässlich
Hässlich oder nicht ist ja relativ irrelevant. Zweckmäßig und sinnvoll sollte eher der Fokus sein.

 
Hässlich oder nicht ist ja relativ irrelevant. Zweckmäßig und sinnvoll sollte eher der Fokus sein.
ok, wenn eine "Datei"(oder URL) hinten auf .html endet dann sieht man gleich das da eine Datei bzw Seite ist ..... ein / (oder auch Ordner ohne) am Ende zeigt das hier eine Übersichtseite ist ... also, für mein Auge betsteht eine WPseite(Site) aus lauter Übersichtseiten und keinen Unterseiten

und ... nachdem ich lange nicht hier war, suche ich gerade den Link in den ProfilEditor für Sif und Avatarbild ?

//EDiT Signatur und Avatar geändert (also, link dorthin gefunden) Hallo an alle die mich noch von Früher kennen

 
Zuletzt bearbeitet von einem Moderator:
also, für mein Auge betsteht eine WPseite(Site) aus lauter Übersichtseiten und keinen Unterseiten
Darüber kann man sich bestimmt lange und intensiv streiten. ?

Interessanter ist hier, warum der Themenersteller sich dafür entschieden hat und was er sich davon verspricht. Ein bestehendes System sollte man nur nach reiflicher Überlegung und mit guter Begründung verändern.

 
Das ist aktuell eine Joomla Seite. Evtl. wird es mal eine WordPress Seite, aber vorerst bleibt es eine Joomla.

Ich habe alle Code-Versuche nicht mehr zur Hand, nur die funktionierende Umleitung von www. auf non-wwww:
 

RewriteEngine on
Redirect 301 / https://domian.de/


Warum: Möchte aus SEO Gründe und zwecks mordernerer Sichtweise die URLs kürzer halten, auch weil inzw. einige Sub-Domains für div. Dienste aktiv sind und es somit einheitlicher ist.

Daraus ergibt sich vielleicht auch schon die Antwort auf eine andere Frage: egal was aufgerufen wird (domain.de/exampel.html) oder www.domain.de/example.html oder https://www.domain.de/example.html, bzw. http://www.domain.de/exapmple.html) - es soll immer https://domain.de/example aufgerufen werden.

Matthes, vielen Dank - ich werde den Code ausprobieren und das Resultat posten.

 
Der Code ist eine Mischung verschiedener Module. ?

Das heißt aber auch, dass es eigentlich bereits eine Handhabung gibt, die Dateien existieren nicht statisch, korrekt?

Dann musst du Joomla auch noch korrekt konfigurieren, wenn es so eingestellt ist, dass es bla.html ausspuckt, wird es unter bla nichts finden.

 
Nein, gar nicht. Das würde example.com/seite.html auf example.comseite.php umleiten. Das klingt kontraproduktiv. ?

Warum...? ?

Und womit?

Es wäre ganz schön, wenn du zukünftig deine eigenen Versuche noch teilst, dann sieht man, dass du dich bemüht hast und kann irgendwo ansetzen.

Mit mod_rewrite wäre sowas denkbar (ungetestet und mitten in der Nacht getippt ;-)):

RewriteEngine On

//Umleitung www auf nicht-www
RewriteCond %{HTTP_HOST} ^www.example\.com [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301,NC]

//Umleitung von allem, das auf html endet auf die Variante ohne html
RewriteRule (.*)\.html$ $1 [R=301,L]

//Ausgabe der Datei
RewriteCond %{REQUEST_URI}\.html$ -F
RewriteRule .* %{REQUEST_URI}\.html [L]


Ist jetzt ungetestet, es ist möglich, dass da noch eine Condition rein muss.

Da ich eben nicht weiß, was du benutzt und ob bei Aufruf der Variante ohne HTML trotzdem die Variante mit der HTML-Endung ausgeliefert werden soll, ist das schwer zu beantworten.

BTW: Kompliziert ist das wirklich nicht.
1. Block funktioniert

2. Block verursacht 404

 
Da sind drei Blöcke. ?

Entscheidende Fragen sind noch offen.

Du nutzt Joomla, also sind die Dateien nicht statisch vorhanden, richtig?

Joomla generiert dir die .html-Links, korrekt? Dann musst du auch Joomla richtig konfigurieren, damit es den Aufruf ohne .html erkennt. Ist das geschehen?

 
Der Code ist eine Mischung verschiedener Module. ?

Das heißt aber auch, dass es eigentlich bereits eine Handhabung gibt, die Dateien existieren nicht statisch, korrekt?

Dann musst du Joomla auch noch korrekt konfigurieren, wenn es so eingestellt ist, dass es bla.html ausspuckt, wird es unter bla nichts finden.
Richtig - es gibt eine .htaccess die die Handhabung bis jetzt bestimmt: alle domains zeigen auf eine domain mit www und https

Und ja, es gibt keine statischen Seiten, sondern nur Joomla-generierte Seiten

Ich hab deine obigen Blöcke aber extra mit einer Webseite getestet, die nur unter einer Domain verfügbar ist. Und ja, Joomla muss und wurde auch so eingestellt, das Rewrite aktiv ist und das kein .html ausgegeben wird

 
Zuletzt bearbeitet von einem Moderator:
Sobald Block 2 drinnen steht, kommt ein 404 - ich hab die Kombi aus Block 1 und Block 3 ohne Block 2 nicht ausprobiert, kann ich aber schnell machen.

Den Rest hab ich in der Zwischenzeit geschrieben ;)

Edit: Block 1 und Block 3 macht auch ein 404

 
Zuletzt bearbeitet von einem Moderator:
Bei Block 2 fehlt auch die Domain vorher, mein Fehler. Ich muss echt aufhören, mitten in der Nacht zu antworten. ?

//Umleitung von allem, das auf html endet auf die Variante ohne html
RewriteRule (.*)\.html$ https://example.com/$1 [R=301,L]


Den dritten Block brauchst du nicht, streich den.

 
Zurück
Oben