Seite 1 von 2
Problem mit der .htaccess
Verfasst: 18.09.2009, 11:28
von alex1234
Hallo
folgendes habe ich im Web gefunden und wollte es für meine Seite
www.energie-foren.de umsetzen:
Auf deinem Server sollte das Modul Mod_Rewrite aktiviert sein. Informiere dich im Handbuch des Webservers dazu wie das geht, oder bei deinem Hoster.
Der Rest ist dann ganz einfach. Erstelle einfach eine Datei namens .htaccess im Hauptverzeichnis deiner Website ( root ). Da schreibst du dann folgenden Inhalt rein:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*) https://www.%{HTTP_HOST}/$1 [R=301,L]
Du kannst das auch in eine bereits bestehende .htaccess Datei einfügen. Logischerweise sollte es dann natürlich relativ weit oben ( wohl eher ganz oben ) hin, damit zuerst weitergeleitet wird [Wobei ich mir da nicht ganz sicher bin].
Aber es ging schief

.
Was habe ich gemacht:
Meine Startseite (index.php befindet sich auf meinem Server im Ordner html)
ich habe eine neue Datei erstellt mit dem namen .htaccess und dann den oberen Code eingefügt.
Dann habe ich die .htaccess hochgeladen in den Ordner html da wo die index.php ist. Allerdings wird mir die .htaccess nicht auf meinem Server im Ordner html angezeigt! Dann hab ich die Startseite geöffnet (index.php) aber diese war dann nich mehr auffrufbar

Also habe ich den Code aus der .htaccess wieder gelöscht und die Datei leer hochgeladen. Jetz geht die Startseite zumindest wieder
was mach ich falsch?
Verfasst:
von
Hochwertiger Linkaufbau bei ABAKUS:
- Google-konformer Linkaufbau
- nachhaltiges Ranking
- Linkbuilding Angebote zu fairen Preisen
- internationale Backlinks
Wir bieten
Beratung und
Umsetzung.
Jetzt anfragen:
0511 / 300325-0
Verfasst: 18.09.2009, 11:48
von Kristian
Das wird dir nur das Logfile (error.log) deines Servers verraten können.
Das du die Datei nicht siehst ist normal, alles was nen Punkt davor hat sieht man nicht.
Verfasst: 18.09.2009, 11:57
von alex1234
ähm ok ich dank dir für deine antwort.
Wie kann ich denn den Logfile(error.log) aufrufen? Hab das noch nie gemacht

Kann mir das jemand erklären bitte?
Wäre super nett
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 18.09.2009, 14:06
von Mork vom Ork
alex1234 hat geschrieben:Wie kann ich denn den Logfile(error.log) aufrufen?
Da musst du deinen Hoster fragen, wie er das Fehlerprotokoll zur Verfügung stellt.
Hab das noch nie gemacht :(
Oh :| Einmal die Woche sollten die aufgelaufenen Fehlermeldungen eigentlich immer durchgegangen werden.
Verfasst: 19.09.2009, 07:47
von alex1234
ok danke euch. Ich habe meinen Hoster gefragt aber noch keine Antwort erhalten. Bin übrigens bei Servana.
Hab ich es denn an sich richtig gemacht?
Einfach eine leere Seite nehmen diesen Code einfügen:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*) https://www.%{HTTP_HOST}/$1 [R=301,L]
und dann als .htaccess bennenen???? Mit nichts weiter drin an Codes???
Und auf meiner Startseite(index.php) muss ich auch nichts weiter reinschreiben?
Ihr habt das doch sicherlich bei euch auch schon mal gemacht oder?
gruß
Verfasst: 19.09.2009, 08:01
von alex1234
Also ein Fehler habe ich gerade schon mal selber bemerkt
ich muss natürlich meine Domain in den Code eingeben
Hab jetz nur diesen Code in .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.energie-foren\.de$
RewriteRule ^(.*)$
https://www.energie-foren.de/$1 [L,R=301]
aber immer noch Zugriff verweigert und startseite nicht aufrufbar

Verfasst: 19.09.2009, 08:10
von Mork vom Ork
alex1234 hat geschrieben:Hab ich es denn an sich richtig gemacht?
Grundsätzlich ist das richtig, ja. Die zweite RewriteCond-Zeile ist allerdings überflüssig, weil der Fall, dass keine Domain, sondern die IP-Adresse des Webservers angegeben wurde, bei dir nicht vorkommen kann.
An was sich der Webserver stört, teilt er dir in besagtem Fehlerprotokoll mit.
Mit nichts weiter drin an Codes???
.htaccess-Dateien sind Konfigurationsdateien für den Apache-Webserver, die nur für das jeweilige Verzeichnis (und meist alle Unterverzeichnisse) gelten, in denen sie liegen.
Es steht dir frei, noch
andere Dinge reinzuschreiben, für die hier gewünschte Funktion ist das aber nicht notwendig.
Und auf meiner Startseite(index.php) muss ich auch nichts weiter reinschreiben?
Nein, damit hat das gar nichts zu tun. Es sollen ja alle Anfragen umgeleitet werden, nicht nur die an die index.php, sondern auch an HTML-Dateien, CSS-Dateien, Javascript-Dateien, Bilder und so weiter und so fort.
Dateien, deren Name mit einem Punkt beginnt, kannst du übrigens auch anzeigen lassen. Vermutlich benutzt du FTP, in deinem FTP-Programm wird sich irgendwo eine Einstellung verstecken, mit der man versteckte Dateien anzeigen lassen kann.
Verfasst: 19.09.2009, 08:28
von alex1234
@Mark vom Ork
danke für deinen ausführlichen Post.
Ich denke es hat was mit den Zugriffsrechten zu tun weil diese verweigert werden.
Die Attribute für die -htaccess stehen auf rw- r-- r--
Is da der Fehler???
Verfasst: 19.09.2009, 08:43
von Mork vom Ork
alex1234 hat geschrieben:Die Attribute für die -htaccess stehen auf rw- r-- r-- Is da der Fehler???
Nein. Die Zugriffsrechte bestehen aus drei Gruppen: Eigentümer, Eigentümergruppe und alle anderen. Du hast bei allen dreien, vor allem bei "alle anderen" ein r, also read, lesbar, stehen. Die Datei kann also von allen gelesen werden, einschließlich des Webservers.
Wäre sie gesperrt, müsstest du im Browser die Anzeige "Forbidden" (oder war's "Access Denied"?) bekommen. Du hast leider nicht geschrieben, was genau passiert, nur "nicht mehr aufrufbar" - was eine Menge bedeuten kann. Falls du die Anzeige "Internal Server Failure" bekommst, hast du definitiv einen Fehler bei den Anweisungen in der .htaccess.
Verfasst: 19.09.2009, 08:54
von alex1234
hab mal nen bild gemacht.
Verfasst: 19.09.2009, 09:58
von Mork vom Ork
alex1234 hat geschrieben:ich muss natürlich meine Domain in den Code eingeben :oops:
Nein, das ist ein Universalteil:
RewriteCond %{HTTP_HOST} !^www.
Das Muster !^www. steht für
! nicht
^ beginnt mit
www Text www
. irgendein Zeichen
RewriteCond %{HTTP_HOST} !^$ [NC]
Das Muster !^$ steht für
! nicht
^ beginnt mit
$ Ende
^$ steht also für "nichts". [NC] soll bedeuten, dass beim Vergleich die Groß-/Kleinschreibung ignoriert wird - wenn mit Nichts verglichen wird, ist die Angabe dieser Option allerdings etwas albern.
RewriteRule ^(.*) https://www.%{HTTP_HOST}/$1 [R=301,L]
%{HTTP_HOST} ist eine Variable, die den aktuellen Hostnamen enthält, also die Domain, die vom Browser angefragt wurde.
Hab jetz nur diesen Code in .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.energie-foren\.de$
RewriteRule ^(.*)$
https://www.energie-foren.de/$1 [L,R=301]
So geht's natürlich auch, aber das kannst du noch ein wenig verschönern, indem du den Mustervergleich gegen einen festen Vergleich ersetzt:
RewriteCond %{HTTP_HOST} !=
www.energie-foren.de
Wenn du sowieso nur einen festen Text haben willst, nichts, was Varianten umfassen muss, kannst du dir die paar Mikrosekunden für die Musteranalyse sparen.
immer noch Zugriff verweigert
Das ist allerdings interessant. Die Zugriffsrechte für deine .htaccess sehen jedenfalls korrekt aus.
Wie eingangs schon erwähnt: Im Fehlerprotokoll steht genau, wo das Problem liegt, mit Zugriff darauf wäre die Angelegenheit in wenigen Minuten erledigt. Du solltest jetzt erstmal auf die Antwort deines Hosters warten, anstatt dass wir hier stundenlang im Nebel rumstochern. Melde dich bitte, wenn du den Fehler bzw. die Fehlermeldung hast, das täte mich interessieren.
(Mit dem angekündigten "7/24h Support" scheint das bei deinem Hoster ja auch eher ein feuchtwarmes Lüftchen zu sein ;)
Verfasst: 20.09.2009, 16:30
von alex1234
hey Servana hat jetz für meinen Account ein Tool aktiviert wo ich Servermeldungen einsehen kann.
Ich bin jetz auf die Seite gegangen (Parallels Confixx) habe die htaccss nochma hochgeladen. Mit folgendem Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} !=
www.energie-foren.de
RewriteRule ^(.*)$
https://www.energie-foren.de/$1 [L,R=301]
Hinweis: Die Datei "/html/.htaccess" hat nicht die Rechte "755".
DAS IS DIE FEHLERMELDUNG VOM Perl-Debugger:
Hinweis: Das Verzeichnis "/html" hat nicht die Rechte "755".
Unquoted string "www" may clash with future reserved word at /html/.htaccess line 2.
Unquoted string "energie" may clash with future reserved word at /html/.htaccess line 2.
Scalar found where operator expected at /html/.htaccess line 3, near "*)$ http"
(Missing operator before $ http?)
Bareword found where operator expected at /html/.htaccess line 3, near "//www"
(Missing operator before www?)
Unquoted string "www" may clash with future reserved word at /html/.htaccess line 3.
Unquoted string "energie" may clash with future reserved word at /html/.htaccess line 3.
Unquoted string "de" may clash with future reserved word at /html/.htaccess line 3.
Multidimensional syntax $1 [L,R=301] not supported at /html/.htaccess line 3.
syntax error at /html/.htaccess line 3, near "(."
/html/.htaccess had compilation errors.
Verfasst: 20.09.2009, 20:15
von Kristian
Das ist jetzt aber hammerhart....
Perl ist eine Programmiersprache und die hat mit der .htaccess nun wirklich gar nichts gemeinsam.
Verfasst: 20.09.2009, 20:30
von chris21
@Kristian:
Hm, in der .htaccess wird aber nun mal vom mod_rewrite Modul beim Apache ab Vers. 2.0 PCRE (Perl Compatible Regular Expressions) verwendet, deren Syntax wie der Name bereits sagt PERL-kompatibel sind.
Daher ist da ein PERL-Debugger zur Überprüfung der Conditions und Rules gar nicht mal dumm...
Tante Edith meint noch:
Achso, habe jetzt den ganzen Thread gelesen:
Mit einem error.log für das mod_rewrite Modul wäre natürlich mehr anzufangen gewesen.
Der Error 403 deutet darauf hin, dass derzeit symbolischen Links nicht gefolgt werden kann.
Daher solltest Du ein
am Anfang der .htaccess einfügen. Falls dann ein 500er Error kommt, musst Du Dich nochmal mit dem Webhoster auseinandersetzen, ansonsten - falls dieser nicht kommt - sollten Deine Regeln dann funktionieren.
Verfasst: 20.09.2009, 21:47
von Mork vom Ork
chris21 hat geschrieben:Daher ist da ein PERL-Debugger zur Überprüfung der Conditions und Rules gar nicht mal dumm...
In der .htaccess werden auch Wörter benutzt, vielleicht sollten wir zur Sicherheit nochmal den Duden zur Hand nehmen? Von den Ausgaben des Perl-Debuggers ist (wen wundert's) nicht eine einzige Zeile brauchbar - so viel dazu.
Der Error 403 deutet darauf hin, dass derzeit symbolischen Links nicht gefolgt werden kann.
Der Fehler erscheint, wenn er eine .htaccess reinkopiert, und verschwindet, wenn er diese wieder löscht. Ich sehe da keinen Zusammenhang mit symbolischen Links.
Ich hab' hier erstmal nur noch einen Tipp: So schnell wie möglich den Hoster wechseln.