kostenloser Webspace werbefrei: lima-city


[HTACCESS] Index.html ausblenden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s*****d

    Hallo!
    Ich möchte folgendes bewerkstelligen:
    Wenn die Website z. B.
    http://simon-d.de/index.html
    aufgerufen wird soll in der Adresszeile
    http://simon-d.de/
    angezeigt werden. Wie schaff ich das? Habe schon etwas gegoogled und geSuFut, doch nichts passendes gefunden.
    Man könnte auch sagen, dass ich einfach nicht auf
    /index.html
    verlinken sollte, aber der elganz halber möchte ich es auch so lösen.

    MfG. Simon D.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h***e

    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
  4. 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
  5. 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:
    Man könnte auch sagen, dass ich einfach nicht auf
    /index.html
    verlinken sollte, aber der elganz halber möchte ich es auch so lösen.
    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.

    Beitrag zuletzt geändert: 14.7.2014 16:45:46 von c143
  6. 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
  7. nemoinho schrieb:
    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.
    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.

    nemoinho schrieb:
    Wie gesagt die schlaue Lösung wäre es seine Anforderungen korrekt zu definieren und Fakt ist, dass es bereits einen einfachen Weg gibt.
    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.

    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]
  8. 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 :cool:
    Aber deine Lösung sieht ziemlich korrekt aus, inkl. dem sinnlosen redirect :thumb:

    Mit freundlichen Grüßen
  9. Autor dieses Themas

    s*****d

    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
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!