[HTACCESS] Index.html ausblenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anforderung
antwort
bestehenden verbindung
code
definieren
domain
endlosschleife
entscheiden
entwicklung
folge
gesendet warte
http
index
platz
richtige antwort
sagen
url
weben
weiterleitung
wiederverwendung
-
Hallo!
Ich möchte folgendes bewerkstelligen:
Wenn die Website z. B.
aufgerufen wird soll in der Adresszeilehttp://simon-d.de/index.html
angezeigt werden. Wie schaff ich das? Habe schon etwas gegoogled und geSuFut, doch nichts passendes gefunden.http://simon-d.de/
Man könnte auch sagen, dass ich einfach nicht auf
verlinken sollte, aber der elganz halber möchte ich es auch so lösen./index.html
MfG. Simon D. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das geht so
RedirectPermanent /index.html http://www.domain.de/
Siehe htaccess Weiterleitung.
https://duckduckgo.com/?q=.htaccess+weiterleitung&t=lm
Beitrag zuletzt geändert: 12.7.2014 19:14:08 von hpage -
Hey, @hpage
hpage schrieb:
Das geht so
RedirectPermanent /index.html http://www.domain.de/
Das ist mit großem Abstand die schlechteste mögliche Antwort!
Wenn du dir auch nur Sekundenlang gedanken darüber gemacht hättest, dann wäre dir selber aufgefallen, dass du eine Endlosschleife vorschlägst!
Zum Beweis habe ich diese Situation mal nachgebaut und das ist das Resultat:felix@laptop:~$ sudo bin/mkvirtualhost index-redirect [sudo] password for felix: Create V-Host... Create log-dir... Create dev-dir... Link dev-dir... Enable V-Host... Reload apache... [ ok ] Reloading web server config: apache2. felix@laptop:~$ cd Entwicklung/web/index-redirect/ felix@laptop:~/Entwicklung/web/index-redirect$ echo 'foo' > index.html felix@laptop:~/Entwicklung/web/index-redirect$ echo 'RedirectPermanent /index.html http://index-redirect.localhost/' > .htaccess felix@laptop:~/Entwicklung/web/index-redirect$ wget --max-redirect=3 index-redirect.localhost/index.html --2014-07-14 16:09:20-- http://index-redirect.localhost/index.html Auflösen des Hostnamen »index-redirect.localhost (index-redirect.localhost)«... 127.0.0.1 Verbindungsaufbau zu index-redirect.localhost (index-redirect.localhost)|127.0.0.1|:80... verbunden. HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently Platz: http://index-redirect.localhost/[folge] --2014-07-14 16:09:20-- http://index-redirect.localhost/ Wiederverwendung der bestehenden Verbindung zu index-redirect.localhost:80. HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently Platz: http://index-redirect.localhost/[folge] --2014-07-14 16:09:20-- http://index-redirect.localhost/ Wiederverwendung der bestehenden Verbindung zu index-redirect.localhost:80. HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently Platz: http://index-redirect.localhost/[folge] --2014-07-14 16:09:20-- http://index-redirect.localhost/ Wiederverwendung der bestehenden Verbindung zu index-redirect.localhost:80. HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently Platz: http://index-redirect.localhost/[folge] 3: Die Anzahl der Verweise ist zu groß. felix@laptop:~/Entwicklung/web/index-redirect$
Das ganze erzeugt eine wunderschöne Endlosschleife, wie man in der vorletzten Zeile sieht:
3: Die Anzahl der Verweise ist zu groß.
Die richtige Antwort wäre gewesen, warum willst du das anders haben? Wie ich das im HTML jetzt schreibe ist doch egal, schließlich sieht es im folgenden doch auch sauber aus:<!Doctype html> <html lang="de"> <head> <base href="/" /> <title>Foo</title> </head> <body> <a href="/">Home</a> </body> </html>
Mit freundlichen Grüßen
* Edit: Wording error
Beitrag zuletzt geändert: 14.7.2014 16:55:22 von nemoinho -
Aber mit Mod Rewrite wird keine Endlosschleife erzeugt, oder?
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.html?/$1 [L]
nemoinho schrieb:
Die richtige Antwort wäre gewesen, warum willst du das anders haben?simon-d schrieb:
Also irgendwie auch nicht die richtige Antwort. Es wird nach einer Lösung des Problems gesucht und nicht nach einem anderen Weg. Mit Mod rewrite sollte das gehen, ob es nötig ist wird der Threadersteller selbst entscheiden.
Man könnte auch sagen, dass ich einfach nicht auf
verlinken sollte, aber der elganz halber möchte ich es auch so lösen./index.html
Beitrag zuletzt geändert: 14.7.2014 16:45:46 von c143 -
c143 schrieb:
Aber mit Mod Rewrite wird keine Endlosschleife erzeugt, oder?
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.html?/$1 [L]
Das ist auch nicht die Lösung für die Anforderung. Der TE möchte auf index.html verlinken und eine Weiterleitung auf / bekommen. Danach soll der Request beendet werden. Das geht aber nicht da, / wiederum auf index.html verweist und so der Redirect neu gestartet werden würde. Außer ich habe etwas an deinem Code komplett übersehen, das glaube ich aber nicht wirklich
c143 schrieb:
Es wird nach einer Lösung des Problems gesucht und nicht nach einem anderen Weg. Mit Mod rewrite sollte das gehen, ob es nötig ist wird der Threadersteller selbst entscheiden.
Wie gesagt die schlaue Lösung wäre es seine Anforderungen korrekt zu definieren und Fakt ist, dass es bereits einen einfachen Weg gibt. Es ist einfach nur dämlich wegen solchen vorgeschobenen Gründen einfache Probleme komplex zu gestalten. Wenn es um "Programmanforderungen" ginge, dann würde ich sagen: "ja gut, lass uns mal alle Lösungen beleuchten." – Aber hier geht es nur darum eine eh schon gegebene, gut funktionierende Implementierung unnötig aufzublähen. Außerdem handelt es sich nur um HTML, nichts weltbewegend komplexes.
Mit freundlichen Grüßen -
nemoinho schrieb:
Nein. Mod Rewrite bezieht sich nicht auf das index File selbst, sondern auf die URL. Ist diese domain.de/index.html wird dies erkannt und zu domain.de umgewandelt. Jetzt wird immer noch das selbe File aufgerufen, und zwar index.html, aber Mod Rewrite wird nicht mehr eingesetzt, da sich auch kein /index.html in der URL befindet. Deshalb auch keine Endlosschleife.
Das ist auch nicht die Lösung für die Anforderung. Der TE möchte auf index.html verlinken und eine Weiterleitung auf / bekommen. Danach soll der Request beendet werden. Das geht aber nicht da, / wiederum auf index.html verweist und so der Redirect neu gestartet werden würde.
nemoinho schrieb:
Richtig. Ich hab einfach die Erfahrung gemacht, dass wenn sogar schon im Ausgangspost steht, dass dies dem Threadersteller bewusst ist und er es trotzdem so lösen will, dann muss man nicht lange rumdiskutieren, dass es die schlauere Lösung wäre. Manchmal kommt es auch vor, dass man seine Situation an einem einfacheren Beispiel erklärt, dass so vielleicht keinen Sinn macht, aber in der tatsächlichen Anwendung dann schon.
Wie gesagt die schlaue Lösung wäre es seine Anforderungen korrekt zu definieren und Fakt ist, dass es bereits einen einfachen Weg gibt.
Ich hab das Script jetzt grad noch probiert, funktionierte ehrlich gesagt nicht. Aber folgendes hat geklappt:
RewriteEngine On RewriteRule ^index\.html$ / [R=301,L] RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
-
c143 schrieb:
Ich hab das Script jetzt grad noch probiert, funktionierte ehrlich gesagt nicht. Aber folgendes hat geklappt:
RewriteEngine On RewriteRule ^index\.html$ / [R=301,L] RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
Jap, soweit hatte ich das gar nicht mehr ausprobiert, da ich eher versuche die Leute zu coachen, meiner Erfahrung nach hilft das nämlich einfach mehr und dann steigt auch deren Produktivität
Aber deine Lösung sieht ziemlich korrekt aus, inkl. dem sinnlosen redirect
Mit freundlichen Grüßen -
Hallo!
Danke, allen Helfern, besonders c143 und nemoinho!
Wie ihr selbst schon erkannt habt, ist es eigentlich nötig, ich wollte das nur einbauen, um für etwas mehr Schönheit zu sorgen.
Damit betrachte ich das Thema als abgeschlossen und sage tschüss!
MfG. Simon D.
EDIT: Bitte lasst das mal mit den sinnlosen downvotes der Beiträge von hpage und nemo.
Beitrag zuletzt geändert: 15.7.2014 14:35:30 von simon-d -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage