Umleitung in .htacess
Gast01
- htaccess
Hallo ich wollte mit
RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=301]
alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?
hallo
Hallo ich wollte mit
RewriteEngine On RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=301]
alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?
Daran, dass du auch www.meine-Seite.test/ auf www.meine-Seite.test/ umleitest und eine nette Endlosschleife erzeugst.
Und mit 301 weist du den Brauser an, das auch permanent so zu machen.
Nutze 302 für testzwecke.
Hallo,
Daran, dass du auch www.meine-Seite.test/ auf www.meine-Seite.test/ umleitest und eine nette Endlosschleife erzeugst.
Und wie vermeide ich die fehlerhafte Umleitung?
Hello,
indem Du nur umlitest, was NICHT wie das Ziel aussieht
Liebe Grüße
Tom S.
Das "was" weiß ich wohl, nicht aber das "wie"! Und da ich die Umleitung jetzt haben sollte und nicht erst nach einer intensiveren Beschäftigung mit dem Thema hatte ich hier konkrete Hile erhofft.
hallo
Das "was" weiß ich wohl, nicht aber das "wie"! Und da ich die Umleitung jetzt haben sollte und nicht erst nach einer intensiveren Beschäftigung mit dem Thema hatte ich hier konkrete Hile erhofft.
Bevor wir hier kaputte Lösungen wervieren erlaube ich mir die Frage:
warum www ?
Hallo, www muss nicht sein.
hallo
Hallo, www muss nicht sein.
Also, und was willst du nun?
alle Aufrufe meine-Seite.test/irgendwas umleiten zu meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?
Ich hoffe du siehst, wie sinnfrei dein Anliegen ist.
Was willst du wirklich erreichen?
Hallo, ich weiß nicht, wie ich es noch erklären soll? www.meine-seite.test/irgendwas ==> www.meine-seite.test oder www.meine-seite.test/ meine-seite.test/irgendwas ===> meine-seite.test oder meine-seite.test/
Ob nun am Ende das www dabei ist, ist mir egal.
hallo
Hallo, ich weiß nicht, wie ich es noch erklären soll? www.meine-seite.test/irgendwas ==> www.meine-seite.test oder www.meine-seite.test/ meine-seite.test/irgendwas ===> meine-seite.test oder meine-seite.test/
Ob nun am Ende das www dabei ist, ist mir egal.
und was soll mit index.html geschehen?
Hallo
und was soll mit index.html geschehen?
Weg damit!
hallo
Hallo
und was soll mit index.html geschehen?
Weg damit!
und wohin soll dann umgeleitet werden?
Hallo
und wohin soll dann umgeleitet werden?
meine-seite.test oder www.meine-seite.test
hallo
Hallo
und wohin soll dann umgeleitet werden?
meine-seite.test oder www.meine-seite.test
also gut. Der Browser sendet also ein /
was soll dann geschehen?
Gewünscht war "alles nach dem ...meine-domain.test zu entfernen". Nach meinem Kenntnisstand wird dann je nach Einstellungen index.html, index.shtml, index.php ..... aufgerufen.
hallo
Gewünscht war "alles nach dem ...meine-domain.test zu entfernen". Nach meinem Kenntnisstand wird dann je nach Einstellungen index.html, index.shtml, index.php ..... aufgerufen.
Nicht, wenn du global alles umleitest.
Werde dir klar, was du alles nicht umleiten darfst. .css, js, /, index.php im Grunde alles was auf existierende Dateien oder directories verweist.
Hello,
bevor Du verzweifelst. Vielleicht hilft Dir meine "Standardumleitung"
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*) index.php/$1 [QSA]
Da würde jetzt jede Anfrage, für die es keine echte Ressource gibt, auf die index.php umgeleitet und der Query-String wieder angehängt.
Im PHP-Script kann dann mit
if(isset($_SERVER['REDIRECT_URL']))
{
# ...
}
abgefragt werden, welche (nicht vorhandene) Ressource der Requestor angefragt hat.
wenn du nur eine
Liebe Grüße
Tom S.
hi,
alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?
Was klappt denn nicht? Fehlerbeschreibung?
Wenn alles nach www.meine-Seite.test/
umgeleitet werden soll, sollte das auch so in der Regel stehen. Was soll denn Deiner Meinung nach Deine Umleitung nach %{HTTP_HOST}
bewirken? Doch bestimmt nicht das was Du vorhast.
MfG
Was klappt denn nicht? Fehlerbeschreibung?
Endlosschleife
Wenn alles nach
www.meine-Seite.test/
umgeleitet werden soll, sollte das auch so in der Regel stehen. Was soll denn Deiner Meinung nach Deine Umleitung nach%{HTTP_HOST}
bewirken? Doch bestimmt nicht das was Du vorhast.
Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.
Was klappt denn nicht? Fehlerbeschreibung?
Endlosschleife
Logisch 😉
Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.
Wirklich alles? Tipp: Schränke es ein, wie folgt:
RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
So sparst Du Dir die Condition. Denn .css
usw. beschreibt ja real existierende Dateien (also anpassen). Alles andere qittiert der Server mit Status 404 und auch diesen kannst Du per ErrrorDocument 404 /fehlerseite.html
abfangen.
MfG
RewriteEngine On
RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
bringt Fehler: The server encountered an internal error or misconfiguration and was unable to complete your request.
hallo
RewriteEngine On RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
bringt Fehler: The server encountered an internal error or misconfiguration and was unable to complete your request.
Regeln gehören auf eine Zeile!
Minimal:
RewriteEngine On
RewriteRule !\.*$ /
MfG
hallo
Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.
Wirklich alles? Tipp: Schränke es ein, wie folgt:
RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
So sparst Du Dir die Condition. Denn
.css
usw. beschreibt ja real existierende Dateien (also anpassen). Alles andere qittiert der Server mit Status 404 und auch diesen kannst Du perErrrorDocument 404 /fehlerseite.html
abfangen.
Nein
Does_not_exist.css ist noch lange keine real existierende Datei. index.html und index.php (beide hast du hier übergangen) sind mit einiger Wahrscheinlichkeit real existierende Dateien.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
ist in dem Fall zutreffender und besser wartbar
KISS
Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:
RewriteEngine On
RewriteRule ^$ - [L]
RewriteCond %{REQUEST_URI} ^.(.*)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
Sie funktioniert tadellos.
Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:
Es gibt einen Wunsch den man sich immer selbst erfüllen kann und das auch muss weil es gar nicht anders geht: Der Wunsch was zu Lernen.
MfG
Ich hoffe, dass die Tippgeber auch etwas gelernt haben, nämlich, dass man nach zig Nachfragen und Bedenken einfach auf das eingehen sollte, was der Fragende klar und deutlich ausgedrückt hat.
Ich hoffe, dass die Tippgeber auch etwas gelernt haben, nämlich, dass man nach zig Nachfragen und Bedenken einfach auf das eingehen sollte, was der Fragende klar und deutlich ausgedrückt hat.
Nein, gerade das hast Du eben nicht! Klappt nicht ist keine Fehlerbeschreibung! Nicht einmal bei Klappstühlen!
MfG
Grundlage für Zitat #2303.
Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:
RewriteEngine On RewriteRule ^$ - [L] RewriteCond %{REQUEST_URI} ^.(.*)$ RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
Sie funktioniert tadellos.
Bei mir schlägt da die Regel RewriteRule ^$ - [L]
zu und da das Flag [L] gesetzt ist, werden alle weiteren Regeln ignoriert.
MfG
Hallo pl,
Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:
RewriteEngine On RewriteRule ^$ - [L] RewriteCond %{REQUEST_URI} ^.(.*)$ RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
Sie funktioniert tadellos.
Bei mir schlägt da die Regel
RewriteRule ^$ - [L]
zu und da das Flag [L] gesetzt ist, werden alle weiteren Regeln ignoriert.
Nö, das stimmt nicht. ^$
trifft nur zu, wenn der String leer ist. Also in diesem Fall nur auf die Root-URL.
Ich hätte das allerdings vermutlich eher so formuliert:
RewriteCond %{REQUEST_URI} !^$
RewriteRule .* http://example.org/ [L,R=302]
Wobei das hier vermutlich auch funktionieren müsste:
RewriteRule ^.+$ http://example.org/ [L,R=302]
Hab aber leider keinen Apachen mehr um das zu verifizieren 😉
LG,
CK