Einschränkungen in der .htaccess
droom
- webserver
Hi folks,
Der alte Auftritt meiner Typo3-Webseite ist noch unter www2 zu erreichen und der neue (ohne Typo3) über www.
Ich möchte eine Weiterleitung einrichten. Diese soll jeden www2-Seitenaufruf auf die www-Startseite weiterleiten. Aber 2 Seiten, die ich spezifizieren kann sollen weiterhin über www2 erreichbar sein, weil die nicht im neuen Auftritt sind.
Ich habe gedacht, ich könnte die .htaccess Datei im root-verzeichnis von typo3 modifizieren. ich weiß leider nicht wie.
mod_rewrite ist natürlich wegen Typo3 installiert.
vielen Dank für jegliche Hilfe.
Droom
Ich habe gedacht, ich könnte die .htaccess Datei im root-verzeichnis von typo3 modifizieren. ich weiß leider nicht wie.
Erstelle eine RewriteRule die beim Auftreten deiner "2 Seiten" das Rewriting stoppt (siehe "- (dash)" und "L" in der Doku) - sämtlicher anderer Traffic wird umgeleitet.
Vielen Dank für deine Antwort. Leider habe ich keine Ahnung wie sowas funktioniert.
Es Scheint für dich leicht zu sein ;-) Vielleicht sagst Du mir mal genau wie
Hi,
Vielen Dank für deine Antwort. Leider habe ich keine Ahnung wie sowas funktioniert.
Dann informiere dich - mod_rewrite ist im Netz gut dokumentiert, zumal für so etwas relativ einfaches, wie du es vorhast.
MfG ChrisB
Es Scheint für dich leicht zu sein ;-) Vielleicht sagst Du mir mal genau wie
Die wichtigsten Dinge in mod_rewrite sind RewriteCond und RewriteRule
Die Bedingungen (Cond) gelten für die nachfolgen Regel (Rule) und können auf verschiedene Felder des HTTP-Headers (bzw. auf Umgebungsvariablen) angewandt werden.
Sie werden sequentiell abgearbeitet, sofern nicht irgendwo unterbrochen wird - z.B. durch das L-Flag (Last Rule).
Beispiel:
RewriteRule ^foobar.html$ - [L]
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Hallo suit,
erstmal vielen Dank. Ein teil des Code klappt ganz gut. Aufrufe mit www3 gehen auf der Startseite von www.
Nur RewriteRule ^foobar.html$ - [L] funtkioniert nicht.
Mein Code sieht so aus:
RewriteRule ^online-test.html$ - [L]
RewriteRule ^auftrag.html$ - [L]
RewriteCond %{HTTP_HOST} !^www.example.de$
RewriteRule ^(.*) http://www.example.de [R,L]
wenn ich www3.example.com/auftrag.html aufrufe, geht er auf www.example.com/auftrag.html. Habe ich etwas falsch gemacht?
vielen Dank.
Droom
Mein Code sieht so aus:
RewriteRule ^online-test.html$ - [L]
RewriteRule ^auftrag.html$ - [L]
RewriteCond %{HTTP_HOST} !^www.example.de$
RewriteRule ^(.*) http://www.example.de [R,L]wenn ich www3.example.com/auftrag.html aufrufe, geht er auf www.example.com/auftrag.html. Habe ich etwas falsch gemacht?
Ganz unten auf der Dokumentationsseite - ggf. liegts an der Unterscheidung zwischen per-server und per-directory ;)
^/auftrag.html$
bzw folgendes um zu sparen.
^/(auftrag|online-test).html$
Eigentlich sollte sowas in die Richtung ohnehin schon in der default .htaccess von TYPO3 stehen.
Vielen Dank nochmal.
Gibt es eine Möglichkeit ein RewriteRule zu machen in der Art "Rewrite alles aber nicht die seite x zu y"?
z.B.:
RewriteRule ^(.*)& !^/(auftrag|online-test).html$ http://www.example.de [R,L]
Vielen Dank nochmal.
Gibt es eine Möglichkeit ein RewriteRule zu machen in der Art "Rewrite alles aber nicht die seite x zu y"?z.B.:
RewriteRule ^(.*)& !^/(auftrag|online-test).html$ http://www.example.de [R,L]
So funktioniert das nicht, aber mit conditional subpatterns müsste das möglich sein - ob das von Apache unterstützt wird weiß ich nicht, zudem ist das schon ein ziemlicher Handstand den dann vermutlich keiner mehr versteht.
Hi!
Gibt es eine Möglichkeit ein RewriteRule zu machen in der Art "Rewrite alles aber nicht die seite x zu y"?
Mit RewriteCond kann man RewriteRules einschränken.
Lo!
Mit RewriteCond kann man RewriteRules einschränken.
Sag ich ja - z.B. lässt sich per RewriteCond der REQUEST_URI auswerten.
Habe herausgefunden,warum ^/auftrag.html$ und ^auftrag.html$ nicht funktionieren.
Meine alte T3-Webseite hat realurl und in der .htaccess Datei steht schon folgendes:
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
Wenn ich nun das hier darunter schreibe:
RewriteRule ^online-test.html$ - [L]
RewriteRule ^/online-test.html$ - [L]
RewriteCond %{HTTP_HOST} !^www.example.de$
RewriteRule ^(.*) http://www.example.de [R,L]
leitet mich trotzdem www3.example.de/online-text.html zu www.example.de
Realurl bietet die Möglichkeit redirect mit regex zu machen in der Art:
'redirects_regex' => array(
'^downloads/(.*)' => 'ftp://dl.domain.tld/public/dl/\1',
),
darum wollte wissen, ob etwas wie:
RewriteRule ^(.*)& !^/(auftrag|online-test).html$ http://www.example.de [R,L] funtkionieren wurde, dann hätte ich es bei realurl eingetragen.
Hi,
Meine alte T3-Webseite hat realurl und in der .htaccess Datei steht schon folgendes:
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.phpWenn ich nun das hier darunter schreibe:
RewriteRule ^online-test.html$ - [L]
RewriteRule ^/online-test.html$ - [L]
RewriteCond %{HTTP_HOST} !^www.example.de$
RewriteRule ^(.*) http://www.example.de [R,L]
... dann ist das natürlich zu spät, da die Regeln zunächst mal von oben nach unten abgearbeitet werden.
MfG ChrisB
... dann ist das natürlich zu spät, da die Regeln zunächst mal von oben nach unten abgearbeitet werden.
Das sagte ich bereits ;)
Habe herausgefunden,warum ^/auftrag.html$ und ^auftrag.html$ nicht funktionieren.
Meine alte T3-Webseite hat realurl und in der .htaccess Datei steht schon folgendes:
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
Das hier ist ggf. ausbaufähiger - zumal du mit deiner ersten Regel vermutlich garnicht ins TYPO3-Backend kommst, wenn du den Trailing-Slash vergisst.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule .* - [L]
RewriteRule ^typo3$ typo3/ [L]
RewriteRule .* index.php [L]
Realurl bietet die Möglichkeit redirect mit regex zu machen in der Art:
'^downloads/(.*)' => 'ftp://dl.domain.tld/public/dl/\1',
Das unterscheidet sich jetzt von einer RewirteRule genau durch was[1]?
darum wollte wissen, ob etwas wie:
RewriteRule ^(.*)& !^/(auftrag|online-test).html$ http://www.example.de [R,L] funtkionieren wurde, dann hätte ich es bei realurl eingetragen.
Nein, hättest du nicht machen sollen - das sagt sogar der Entwickler von RealURL :)
RealURL erfüllt seinen Zweck, die Performance ist aber Mist - man sollte so viel wie möglich davon wegverlagern.
btw: weil's grade zum Thema passt, hier ein bisschen Werbespam für einen Artikel von mir :p
Trailing Slash bei RealURL entfernen
[1] Mit Ausnahme der Tatschache dass man auf sämtliche mod_rewrite-Features verzichten muss ;)
Hi Suit,
stecke immer in der Klemme. Haste eine idee, wie ich mein Problem lösen kann?
viele Grüße.
Droom