1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit .htaccess Datei

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Schwertfisch, 29.01.09.

  1. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Eins vorab: Ich bin nicht vom Fach, und habe Verständnisprobleme mit Codes jeglicher Art. Trotzdem muss ich mich hier zwangsweise mit dem Thema auseinandersetzen. Der Background lässt sich am besten mit einem Zitat aus dem Blog von Matthias Gläsner erklären:

    "...Standardmäßig sind Internetseiten gleichzeitig unter vorangestelltem www. und ohne vorangestelltes www. erreichbar, was insbesondere in Suchmaschinen häufig zu doppeltem Content (Inhalt) führt, der die Positionierung in den Suchergebnisseiten negativ beeinflusst.
    Z.B.:
    http://www.matthias-glaessner.de und http://matthias-glaessner.de verweisen ohne eine Server-Anpassung auf den gleichen Webinhalt und erzeugen doppelten Content in den Suchmaschinen.
    Abhilfe bringt eine Anpassung der htaccess-Konfigurationsdatei, die den NCSA-kompatiblen Server anweist, beide Adressen als eine einzige Adresse zu betrachten.

    RewriteEngine On
    RewriteCond %{HTTP_Host} ^matthias-glaessner\.de$ [NC]
    RewriteRule ^(.*)$ http://www.matthias-glaessner.de/$1 [R=301,L]

    Ersetzen Sie die Domain matthias-glaessner dabei durch Ihre Domain und sorgen Sie dafür, dass sich diese htaccess-Datei in Ihrem Stammverzeichnis befindet ( / bzw. htdocs)...."

    Soweit so gut, denn ich selbst könnte mein Problem kaum so exakt erklären.
    Stoße bei der Lösung allerdings mit meinem OS X 10.5.6 Equipment damit auf zwei Probleme:
    1. Verfüge über kein Programm, dass den Code als reine ASCII-Text-Datei abspeichern kann (...und das muss man unbedingt). TextEdit kann das wohl nicht. Gibt's ein Tool welches das kann?

    2. Man muss angeblich die Datei mit dem Dateinamen .htaccess (...wichtig: der Punkt vor dem h!!!) abspeichern, sonst klappt es nicht. Sobald ich das versuche, erscheint bei mir eine Meldung, die besagt: "Dateinamen mit Punkt am Anfang sind dem System vorbehalten!".

    Habe versucht, die Datei ohne Punkt zu speichern, und den Punkt im Dateinamen nachträglich auf dem Surver zu editieren — mit dem Erfolg, dass meine ganze Website nicht mehr lief... :mad:

    Hat jemand bezüglich Punkt 1. und 2. (...oder auch allgemein) Lösungsvorschläge?
     
  2. Katzenfutter

    Katzenfutter Kaiser Wilhelm

    Dabei seit:
    16.12.06
    Beiträge:
    174
    Punkt 1:
    http://tuppis.com/smultron/
    Smultron ist ein kostenloser, recht guter Editor für verschiedenste Programmiersprachen und Textinhalte.

    Punkt 2:
    Die .htaccess-Direktiven können durchaus komplex sein und dir problemlos den Zugriff auf deinen eigenen Server (via Browser bspw. Safari) verwehren.
    Dein Code hier macht eigentlich nichts weiter als Anfragen auf matthias-glaessner.de auf www.matth... umzuluenken, somit auch die Suchmaschine Google wenn sie deine Seite besucht.

    Dateien mit einem vorfolgenden Punkt sind unter Unix versteckte Dateien, somit erlaubt dir der Finder auch keine "versteckten" Dateien auf dem einfachen Weg zu erzeugen... könntest sonst recht einfach umbewusst und unter bestimmten Umständen dein System abschießen.

    Solche Dinge erledigt man per Terminal, also über die Kommandozeile. Hierzu konsultierst du "einfach" diverse Threads hier oder Google.

    Schwierig, dir in einem Dreizeiler zu erklären, wie man dein Problem löst... vor allem Ferndiagnose ist hier schwierig wenn ein Tip aus dem Thread hier fehl schlägt...

    Zu HTACCESS allgemein: die Direktiven beeinflussen direkt deinen Webserver (HTACCESS ist ein Feature von Apache). Damit kannst du Zugriffe (htACCESS) sowie auch das Verhalten von "Ordnern" bzw. Subdomains steuern.
    Schau bei Google (http://www.google.de/search?hl=de&q=tutorials+htaccess&btnG=Google-Suche&meta=) mal nach Tutorials und versuche dein "Glück". Beschädigen kannst du durch dein Basteln eigentlich nichts. Im schlimmsten Falle erreichst du deine Website nimmer per Safari, Firefox...
     
  3. torben1

    torben1 Süsser Pfaffenapfel

    Dabei seit:
    05.08.08
    Beiträge:
    661
  4. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    MISSVERSTÄNDNIS!!
    Natürlich habe anstelle der Adresse von matthias-glaessner meine eigene eingesetzt. Bei dem zitierten Blog handelte es sich ja nur um eine Empfehlung zur Vorgehensweise. Die Adressen habe ich natürlich getauscht!
    Ergebnis trotzdem gleich null.

    Habe ich getestet:
    Und eigentlich sollte jetzt nach Eingabe der Adresse
    Code:
    Adresse auf Userwunsch entfernt!
    automatisch
    Code:
    Adresse auf Userwunsch entfernt!
    im Browser erscheinen.
    Macht es aber nicht. Also... Versuch misslungen (leider).
     
  5. torben1

    torben1 Süsser Pfaffenapfel

    Dabei seit:
    05.08.08
    Beiträge:
    661
    Unterstützt Dein Server den überhaupt .htacces? Wenn ja ist Deine Vorgehensweise eigentlich richtig.

    Torben
     
  6. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Habe vor etwa 30 Minuten eine Anfrage — incl. ausführlicher Schilderung des Problems — an meinen US-Hoster "GoDaddy" geschickt, und hoffe sehr im Laufe des Tages eine Antwort zu erhalten. Doch leider gehört support nicht gerade zu den Stärken dieses Hosters... :mad:
     
  7. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Habe vor etwa einer Stunde die Antwort des Hosters erhalten:

    "Thank you for contacting Online Support. Unfortunately, we do not provide technical support with third-party scripting issues. We are very limited in the support we can offer for customer-written code or scripts. You may wish to consult with a community forum online or do a search on your favorite search engine as other users may have encountered a similar problem in the past and may offer helpful solutions.

    When using a Linux server with the Apache Mod-Rewrite module enabled, you can create a .htaccess file to ensure that all requests to coolexample.com will redirect to www.coolexample.com, where "coolexample.com" is the name of your domain. The .htaccess file needs to be saved in the root
    directory of your old Web site, which is the same directory as your
    index file. You can create a .htaccess file with the following code:

    RewriteEngine on
    rewritecond %{http_host} coolexample.com [nc]
    rewriterule (.*)$ http://www.coolexample.com/$1 [r=301,nc]

    Changes made to an existing .htaccess file will be seen immediately. When a new .htaccess file is created or an existing .htaccess file is deleted, however, these changes will not be seen until the htaccess cache is cleared. This occurs every hour.

    Please remember that a Linux server is caSe SensItiVe.

    Please let us know if we can help in any other way."


    Habe es daraufhin noch ein weiteres mal versucht, diesmal mit dem Code den der Hoster oben empfohlen hatte (...die "coolexample Adresse" habe ich natürlich durch meine ersetzt). Nach diesem Versuch ging dann gar nichts mehr. Sowohl beim Aufrufen von
    Code:
    Adresse auf Userwunsch entfernt!
    als von
    Code:
    Adresse auf Userwunsch entfernt!
    erschien folgende Fehlermeldung im Browser:

    [​IMG]

    Ich habe dann die .htaccess Datei in hohem Bogen aus dem Root-Verzeichnis geschmissen, und werde jetzt versuchen, mit diesen traurigen und schrecklichen Doppeleinträgen zu leben, denn eine Lösung scheint es auch nach drei Tagen Fehlersuche — in meinem Fall — nicht zu geben.
     
  8. Kiteman

    Kiteman Jamba

    Dabei seit:
    05.09.06
    Beiträge:
    55
    .htaccess und host

    Hallo,

    ich weiß nicht was Du mit Doppeleinträgen verstehst, aber ich denke Du willst ServerAliase umleiten auf den ServerName

    ServerAlias und ServerName sind direktriven, die dem Apache Server sagen für welchen Host welches Verzeichnis geliefert werden soll. (idF. könnte man auch Domain sagen).

    Das verwenden von "Redirects" -> Regeln zum Umleiten von Anfragen, basiert auf mod_rewrite. Man kann Umleitungsregeln in dem httpd.conf Datei eintragen und z. B. somit zentral SPAM-Robots ausschliessen.

    Damit Entwickler und Bastler auch mitmachen dürfen gibt es .htaccess. Außerdem muß man nicht jedesmal den HTTPd Server neu starten.

    Die Verwendung von .htaccess wird per se vom Server Admin zentral für die vHosts (-> Hosting) freigeschaltet oder auch nicht. Im klassischem Massenhosting ist das immer freigeschaltet. Wer seinen eigenen Server betreibt lässt das aus, da es auch Performance frisst und ein Sicherheitsproblem darstellen kann.

    So das war der kurze Hintergrund, den man sich auch selber anlesen kann.

    Du hast eine Endlosschleife, die Dein Browser anzeigt. Das heisst man macht erstmal Fehlerisolation.

    Das steht am Anfang was ist die Aufgabe? Die Aufgabe ist Umleiten aller HTTP_HOSTS auf den Domaineintrag www.foo.com. Warum weil foo.com != www.foo.com sein kann. In unserem Fall aber das Gleiche ist.

    Wir wagen daher das kühne Experiment des Umkehrschlusses und der bedeutet: alles was NICHT www.foo.com (HTTP_HOST != www.foo.com) ist, soll auf www.foo.com umgeleitet werden. Der Vorteil ist, wenn man jetzt eine Domain www.doe.com hat und die ist als ServerAlias hinterlegt am vHost, dann wir das auch automatisch auf www.foo.com umgeleitet.

    Hier eine Möglichkeit der Regel die Hilfe verschafft:

    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.foo\.com [NC]
    RewriteCond %{HTTP_HOST} !=""
    RewriteCond :%{SERVER_PORT} ^:)80|:)[0-9]+))$
    RewriteRule ^/(.*) http://www\.foo\.com%2/$1 [L,R=301]

    Hier ein Bsp.:
    http://www.halloween-kostueme.de -> http://www.faschingskostueme.de umgeleitet.

    Die Zeile könnte man weglassen, wenn keine speziellen Ports ausser 80 verwendet werden.
    RewriteCond :%{SERVER_PORT} ^:)80|:)[0-9]+))$

    Damit die Regel nur in Anwendung kommt wenn auch mod_rewrite vorhanden ist, kann man das auch so machen:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.foo\.com [NC]
    RewriteCond %{HTTP_HOST} !=""
    RewriteCond :%{SERVER_PORT} ^:)80|:)[0-9]+))$
    RewriteRule ^/(.*) http://www\.foo\.de%2/$1 [L,R=301]
    </IfModule>


    Hellau

    Kiteman
    http://www.noesis.info

    P.S.:
    Beim Namebased Virtual Hosting und der Verbreitung des HTTP 1.1 Protokoll Mitte 1995 wurde es möglich, das eine IP-Adresse mehrere vHost beherbergt (-> Multihoming). Davor war www.foe.com z. B. an 212.18.18.210 gebunden.

    HTTP 1.1 kann aber www.foe.com und www.doe.com unter 212.18.18.210 hosten. Das ist aber auch dadurch möglich, dass der Client (-> Browser) den Host im HTTP Headers sendet. Dieser könnte aber leer sein, deshalb

    RewriteCond %{HTTP_HOST} !=""

    Bsp. Client Request Header
    GET /pub/WWW/TheProject.html HTTP/1.1
    Host: www.w3.org
     
    #8 Kiteman, 02.02.09
    Zuletzt bearbeitet: 02.02.09
  9. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Hallo Kiteman,

    bitte nicht sauer sein, aber ich kann dem was Du schreibst nicht folgen. Dazu fehlen mir ganz einfach die Kenntnisse...:-[

    Ich bin jetzt einer Empfehlung aus dem Google-Forum gefolgt, und habe die Webmaster-Tools zur Hilfe genommen. Auf der folgenden Seite, habe ich eine relativ einfache Lösung für mein Problem gefunden:
    http://www.google.com/support/webmasters/bin/answer.py?answer=44231

    Da es einige Zeit dauert, bis die Änderungen greifen, kann ich jetzt noch nichts dazu sagen. Sollte es klappen, dann wäre mein Problem auf recht einfache Weise damit gelöst.
     
  10. Kiteman

    Kiteman Jamba

    Dabei seit:
    05.09.06
    Beiträge:
    55
    Das macht nichts. Aber das was Du vorhast, dazu muss man sich schon auch mal einlesen. Das ist nämlich alles nicht so einfach, wie man oft in den Medien suggeriert bekommt. Wie soll es denn auch gehen, das Progammierer, Entwickler, Hostmaster einen Job bekommen, wenn jeder das machen kann.

    Deine Frage ging um einen Redirect. Jetzt schickst Du eine Link, wo Google empfiehlt wie die bevorzugte Domain lauten soll. Da geht es eigentlich doch um was anderes.

    Kopier einfach den rot markierten Text des 2 Beispiel in .htaccess und es funzt. (Domain ändern)

    Viel Glück

    Kiteman
     

Diese Seite empfehlen