Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Frage Weiterleitung htaccess mit www. ohne www.

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
Aamu
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 05.06.2011, 17:16

Beitrag von Aamu » 21.09.2011, 09:20

Hallo,
diese Frage wurde sicherlich schon oft gestellt, allerdings habe ich es trotz aller Tutorials nicht hinbekommen.
Folgendes ist mein Problem:
Meine Seite ist über www.domain.de und domain.de erreichbar. Navigiert man durch die Seite, wird allerdings immer richtigerweise das www. vorangesetzt. Der erste Seitenaufruf zeigt die Seite aber trotzdem ohne www. an.

In der htaccess habe ich folgendes Inhalt stehen

Code: Alles auswählen

<FilesMatch "\.js\.gzip$">
 AddType "text/javascript" .gzip
</FilesMatch>
<FilesMatch "\.css\.gzip$">
  AddType "text/css" .gzip
</FilesMatch>
AddEncoding gzip .gzip

RewriteEngine On
RewriteRule ^typo3$ - &#91;L&#93;
RewriteRule ^typo3/.*$ - &#91;L&#93;
RewriteRule ^uploads/.*$ - &#91;L&#93;
RewriteRule ^fileadmin/.*$ - &#91;L&#93;
RewriteRule ^typo3conf/.*$ - &#91;L&#93;

RewriteCond %&#123;REQUEST_FILENAME&#125; !-f
RewriteCond %&#123;REQUEST_FILENAME&#125; !-l
RewriteRule .* /index.php
Füge ich folgendes hinzu

Code: Alles auswählen

RewriteCond %&#123;HTTP_HOST&#125; ^meinedomain\.de$ &#91;NC&#93;
RewriteRule ^&#40;.*&#41;$ http&#58;//www.meinedomain.de/$1 &#91;R=301,L&#93;
wird bei jedem Aufruf auf www.meinedomain.de//index.php weitergeleitet (kein Schreibfehler). Das geht also nicht.

Lösche ich

Code: Alles auswählen

RewriteRule .* /index.php
heraus, wird beim ersten Aufruf richtig weitergeleitet, beim Navigieren durch die Seite bekomme ich aber jedes mal einen 404-Error.

Ich benutze TYPO3 und habe meine Seite bei jweiland.net gehostet.

Hat jemand dazu eine Idee?
Vielen Dank im Voraus.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 21.09.2011, 09:29

Hat jemand dazu eine Idee?
Ja...

Schreib hinter das "RewriteRule .* /index.php" ein [L] und packe die www-Geschichte vor das "RewriteCond %{REQUEST_FILENAME} !-f "

Aamu
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 05.06.2011, 17:16

Beitrag von Aamu » 21.09.2011, 09:37

Synonym hat geschrieben:
Hat jemand dazu eine Idee?
Ja...

Schreib hinter das "RewriteRule .* /index.php" ein [L] und packe die www-Geschichte vor das "RewriteCond %{REQUEST_FILENAME} !-f "
Das hat funktioniert, vielen herzlichen Dank für die schnelle und hilfreiche Antwort! Magste mir auch noch erklären, warum das so funktioniert und nicht anders?

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 21.09.2011, 09:45

Meine beiden Punkte haben so gesehen nicht direkt was miteinander zu tun.

Wenn die www-Geschichte hinter dem anderen Teil kommt, dann wird der andere Teil eben immer zuerst abgearbeitet. In dem Fall wird eben bei allem (.*) auf die index.php zugegriffen. Da diese Zeile aber keinen Last-Bedingung [L] hatte, "merkt" sich der Apache diesen Wert und es geht direkt weiter zu der www.Geschichte. Dort wird dann neben dem eigentlichen www am Anfang auch der Wert von vorher hinten angehängt. Deine Rule fürs WWW sagt schon aus, dass er weiterleiten soll an domain.tld/ Der Wert von vorher ist "/index.php". Beides zusammen ergibt dann eben das "domain.tld//index.php"

www-Geschichten sollten aber immer weiter nach vorne, denn es macht nicht wirklich Sinn, erst andere Rules zu bearbeiten, andere Files einzulesen um danach festzustellen, dass man eigentlich weiterleiten muss, weil das www fehlt. Also erst das Weiterleiten, dann den Rest.

Ein [L] alleine hätte nicht gereicht, da der Apache dann nie bis zum Ende durchgedrungen wäre und schon vorher die Bearbeitung beendet hätte. Also die www-Geschichte davor. Ist die davor, dann hätte man das [L] nicht benötigt, da die Zeile ja die letzte ist, aber es beugt zukünftige Fehler vor, falls danach doch mal was anderes kommen sollte.

Aamu
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 05.06.2011, 17:16

Beitrag von Aamu » 21.09.2011, 10:35

Vielen herzlichen Dank für die Erläuterung! Dann kann ich das in Zukunft richtig machen und anderen hilft es eventuell auch. Danke sehr! :)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag