In diesem Artikel geht es um ein sehr technisches Thema, das ich dir aber natรผrlich einfach aufbereite: die tollen Mรถglichkeiten der .htaccess Datei. In dieser Datei kรถnnen Konfigurationsanweisungen fรผr deinen Webserver hinterlegt und auf ein gewisses Verzeichnis bezogene Regeln festgelegt werden.
Das heiรt also, die in der .htaccess festgelegten Regeln gelten immer fรผr das Verzeichnis, in der diese Datei liegt. Im Normalfall legt man die meisten Konfigurationen in der .htaccess Datei des Hauptverzeichnisses ab, da diese fรผr diesen gesamten Ordner samt Unterordner gilt, wodurch WordPress .htaccess Regeln fรผr den gesamten Blog รผbernimmt.
Ich werde dir in diesem Artikel einige coole Codeschnipsel zeigen, mit denen du deinen Blog ganz einfach schneller und sicherer machen kannst. Diese Codeschnipsel musst du in der .htaccess deines Hauptverzeichnisses einfรผgen.
In WordPress .htaccess Dateien richtig benutzen
Bevor es los geht, muss ich dir noch ein paar Kleinigkeiten zu dieser besonderen Datei erklรคren.
Die .htaccess ist eine sehr mรคchtige Datei mit der man sehr viel gutes aber auch schlechtes anstellen kann. Trรคgst du hier etwas falsches ein, kann das dazu fรผhren, dass deine Website nicht mehr erreichbar ist.
Darum mache am besten ein komplettes WordPress Backup, bevor du loslegst!
Schutz der .htaccess
Bevor wir also loslegen, solltest du zunรคchst einmal die Dateiberechtigungen fรผr die .htaccess festlegen. WordPress schlรคgt vor (und ich kann das nur bestรคtigen), die Berechtigung 644 zu hinterlegen.
Dafรผr loggst du dich mit deinem FTP Programm auf deinem Webserver ein, machst einen Rechtsklick auf die .htaccess Datei in deinem Hauptverzeichnis, und klickst im Anschluss auf โDateiberechtigungenโ oder รคhnliches. Nun gibst du als Berechtigung 644 ein, und sicherst damit die Datei vor Verรคnderungen von auรen ab.
Standardinhalte
WordPress benรถtigt von Haus aus nur eine einzige Regel in der .htaccess um zu funktionieren. Diese Regel ist dafรผr da, dass man die URLs in WordPress รคndern kann. Das braucht man beispielsweise, um sprechende URLs zu erstellen. Dieser Eintrag sollte also bereits in deiner .htaccess stehen, wenn nicht, fรผge ihn unbedingt ein:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Bevor du รnderungen einfรผgst: Achtung!
Erstelle dir auf jeden Fall zunรคchst ein Backup der .htaccess. Das geht ganz einfach indem du per FTP die aktuelle Datei herunterlรคdst und auf deinem Computer speicherst. Sollte dann etwas schief gehen, kannst du einfach diese gespeicherte Datei wieder hochladen und die verรคnderte รผberschreiben. Schon lรคuft wieder alles rund.
Noch eine letzte Kleinigkeit bevor es endlich ans Werk geht:
Fรผge die Codeschnipsel entweder vor โ#BEGIN WordPressโ ein oder hinter โ#END WordPressโ. Ich habe die Codeschnipsel jeweils am Anfang mit einer Zeile kommentiert, damit du den รberblick behalten kannst und weiรt, welcher Code welche Auswirkungen hat. Kommentare beginnen immer mit einem # und werden von Browsern nicht interpretiert sondern dienen lediglich der รbersichtlichkeit.
Auch die .htaccess muss bei einem Seitenaufruf immer zunรคchst einmal von dem Browser geladen werden, achte also darauf, sie mรถglichst schlank zu halten und nur die Codes einzufรผgen, die du wirklich benรถtigst.
So, jetzt geht es aber los ๐
WP-admin nur fรผr ausgewรคhlte IPs zulassen
Mit diesem Schnipsel kannst du die Login Seite fรผr alle Nutzer, auรer die von dir eingegebenen sperren. Logischerweise kannst du damit sehr effektiv verhindern, dass sich jemand ungewolltes an der Login Seite zu schaffen macht.
Das Ganze funktioniert nur, wenn du und die anderen Benutzer eine statische IP Adresse besitzen. Bei einer dynamischen IP wird bei jedem neuen Einwรคhlen eine neue IP vergeben. Ist das bei dir oder deinen Benutzern der Fall, kannst du diesen Trick nicht anwenden.
Deine IP Adresse kannst du ganz einfach herausfinden, indem du auf ein Online-Tool wie beispielsweise www.meine-aktuelle-ip.de gehst.
In der .htaccess werden die IP Adressen der freizugebenden Nutzer eingetragen. Du musst also jeden hinzukommenden Nutzer nach seiner IP Adresse fragen, und diese mit in die .htaccess eintragen.
# Zugriff auf wp-admin nur fรผr vorgegebene IPs
order deny,allow
deny from all
allow from IPAdresse1
allow from IPAdresse2
WP-config.php fรผr alle sperren
Die wp-config.php Datei enthรคlt deine Datenbankdaten, Zugangsdaten zu WordPress und weitere, sehr sensible Daten. Damit niemand einfach in die Datei reinschauen und sich an den Daten zu schaffen machen kann, kannst du sie รผber die .htaccess sperren.
# Verbietet allen den Zugang zur wp-config
<files wp-config.php>
order allow,deny
deny from all
</files>
Verhindere, dass deine Bilder genutzt werden
Sogenanntes Image Hotlinking wird immer wieder missbraucht. Das bedeutet, dass jemand eines deiner Bilder auf seiner Website einbaut, aber รผber deinen Server abruft. Dadurch entsteht zusรคtzlicher Traffic, was die Geschwindigkeit deines Blogs beeintrรคchtigen kann. Zudem sind viele Hostingpakete auf eine gewisse Menge an Traffic pro Monat begrenzt, wodurch du durch dieses Image Hotlinking Probleme bekommen kannst.
Mit diesem Codeschnipsel in der .htaccess kannst du einstellen, dass bei dem Versuch ein Bild รผber deinen Server einzubinden, stattdessen ein von dir vorgegebenes Bild angezeigt wird.
Achtung: Dieser Code sorgt in manchen Fรคllen dafรผr, dass Bilder in RSS Readern nicht mehr angezeigt werden. Wenn du RSS nicht anbietest oder auf die Bilder verzichten kannst, ist das kein Problem. In den anderen Fรคllen fรผge den Code einfach hinzu, und รผberprรผfe, ob die Bilder nach wie vor angezeigt werden.
# Verhindert Image Hotlinking. Ersetze die letzte URL mit einem Bildlink.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?deinblog.de [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://deinbild.jpg [NC,R,L]
Browser Caching aktivieren
Jetzt gibt es zwischendurch einen kleinen Tipp zur Geschwindigkeitsoptimierung mit Hilfe der WordPress .htaccess Datei. Ich habe diesen und weitere Tipps bereits in dem Artikel โ7 Tricks, wie du WordPress schneller machen kannstโ vorgestellt.
Dieser etwas lรคngere Code aktiviert das sogenannte Browser Caching. Bei einem Seitenaufruf speichert ein Browser zunรคchst alle Dateien offline und zeigt sie dann an. Dadurch entsteht die Ladezeit einer Website. Durch das Browser Caching wird dem Browser erlaubt, bei dem nรคchsten Seitenaufruf einfach wieder diese bereits heruntergeladenen Dateien abzurufen, ohne sie erneut herunterzuladen.
Damit das funktioniert, wird den Browsern die maximal erlaubte Speicherdauer fรผr verschiedene Dateitypen vorgegeben. Dadurch werden nach der vorgegebenen Zeit die Dateien neu geladen, falls รnderungen erfolgt sind.
# Browser Caching aktivieren
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
GZIP Komprimierung aktivieren
Noch ein zweiter Tipp fรผr die Geschwindigkeitsoptimierung deiner Website. Du kannst mit einem kurzen Codeschipsel die sogenannte GZIP Komprimierung aktivieren.
Mรถchtest du deine Website-Ladezeit optimieren, erfรคhrst du hier alles รผber die Optimierung der Ladezeit mit WP Rocket.
GZIP ist ein Webstandard um Dateien zu komprimieren. Das kannst du dir vorstellen wie ein .zip oder .rar Archiv auf deinem Computer.
Die Dateien werden so stark es geht verkleinert und dann erst durch den Browser wieder entpackt. Dadurch wird dein Blog sehr viel effizienter und schneller geladen.
Gehe nach der Aktivierung auf checkgzipcompression.com und gib die URL deines Blogs ein. Du wirst nun sehen, ob GZIP aktiviert ist und was dadurch eingespart wird.
# Aktiviert GZIP Komprimierung
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
Zugriffe auf .htaccess verhindern
Zusรคtzlich zu der Einstellung der Dateiberechtigungen solltest du die .htaccess mit der Hilfe der .htaccess fรผr Zugriffe von auรen sperren. Klingt komisch, funktioniert aber ๐
Wie schon gesagt, hat die .htaccess groรe Auswirkungen auf die Funktionsweise deines Blogs und kann einen Haufen Schaden anrichten. Aus diesem Grund sollte man alles dafรผr tun, sie so gut wie mรถglich zu schรผtzen.
#Zugriffe auf .htaccess verhindern
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
Bestimmte Nutzer ausschlieรen
Spammer loswerden und Hacker ausschlieรen, klingt doch super oder?
Ist es auch und vor allem geht es mit der .htaccess ganz einfach.
Bei den Spamkommentaren wird dir in WordPress direkt die IP Adresse angezeigt. Fรผr Hackversuche ist es etwas komplizierter, aber trotzdem machbar an die IP Adresse zu kommen. Hierfรผr musst du entweder in die Logfiles deines Servers schauen oder mit einem Plugin wie iThemes Security arbeiten.
Die herausgefundenen IP Adressen kannst du dann alle in diesen Codeschnipsel in der .htaccess eintragen, wodurch sie keinen Zugriff mehr auf deinen Blog haben. Ersetze einfach die X mit der IP Adresse.
#Nutzer per IP ausschlieรen
<Limit GET POST>
order allow,deny
deny from XXX.XXX.XX.X
deny from XXX.XXX.XX.X
allow from all
</Limit>
301 Weiterleitungen
Wenn du deinen Blog auf eine andere Domain umziehst, komplette Artikel oder Seiten auf eine neue URL umstellst oder aus einem anderen Grund eine Weiterleitung erstellen musst, ist das in WordPress mit der .htaccess ganz einfach.
Eine 301 Weiterleitung (301 Redirect) sorgt dafรผr, dass Nutzer beim Anklicken eines Links, der auf eine alte Seite verweist, auf die neue Seite weitergeleitet wird. Das ist nicht nur fรผr deine Nutzer sondern auch fรผr Google รคuรerst wichtig, denn so verlierst du keine Kraft durch die Links auf deine Seite, die ohne die Weiterleitung ins Leere fรผhren wรผrden.
Hinter dem โRedirect 301โ trรคgst du zunรคchst die alte URL ein, machst dahinter ein Leerzeichen und setzt die neue URL dahinter.
#301 Weiterleitungen
Redirect 301 /alteseite.html http://neuewebsite.de/neueurl
Redirect 301 / http://neuewebsite.de/
Auslesen von Nutzernamen verhindern
Wusstest du, dass man deinen Nutzernamen ganz einfach herausfinden kann, indem man /?author=1 an deine Domain anhรคngt? Probiere es mal aus, WordPress leitet dich sofort auf die Autorenseite von Benutzer eins weiter. Dadurch kรถnnen Hacker deinen Nutzernamen fรผr den Login super einfach herausfinden.
Klar, damit kommen sie auch nicht weit, aber man sollte es Hackern so schwierig wie mรถglich machen.
Wenn du diesen Code in deiner .htaccess hast, wird bei der Eingabe von /?author=X die Startseite deines Blogs angezeigt.
# Verhindert das einfache Auslesen von Nutzernamen
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
RewriteRule (.*) /blog/?author= [NC,L,R=301]
Hast du andere .htaccess Codes, mit denen du deinen Blog verbesserst? Kommentiere doch einfach und lass uns teilhaben ๐
Hallo Jonas,
ein hilfreicher Artikel!
Was macht die dritte Zeile beim Redirect?
Gruss
Martin
Hey Martin,
das ist einfach eine weitere Weiterleitung. In diesem Beispiel leitet das die Startseite „/“ auf die Website „http://neuewebsite.de/“ um.
Grรผรe
Jonas
aber nur die Startseite, oder? Also nicht auch alle Unterseiten!?
Ja, mรถchtest du alle Unterseiten auf eine gewisse Seite umleiten, mรผsste das so aussehen:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(index\.html)?$ [NC]
RewriteRule ^.*$ http://deinewebsite.de [L,R=301]
Interessante Sicherheitskonzepte, welche mir noch nicht bekannt waren. Danke!
Hey Martin,
gerne doch ๐
Viel Erfolg
Jonas
Echt super Post mit vielen guten Tipps.
Vor allem der letzte Tipp zum verbergen des Authors ist interessant und sinnvoll.
Nach meinen Beobachtungen, ist das Angriffstelle Nr1. Bei WordPress.
Hey Sascha,
danke fรผr das Lob! ๐
Ja, es ist eine Angriffsmรถglichkeit weniger, das ist immer gut.
Grรผรe
Jonas
Hallo Jonas,
klasse Beitrag, vielen Dank. Kรถnntest du mir noch bitte erklรคren wie Ich in der .htaccess setzen kann, dass wenn Ich statt „https://123456.de/“ „https://123456.de//“ oder https://123456.de eingeben, dass dann eine Weiterleitung auf …de/ oder …de stattfindet. Was ist denn zu Empfehlen? Lieber mit trailingslash oder besser ohne? Danke vorab und gruร
Sascha
Hey Sascha,
ich wรผrde ein trailing slash einfรผgen ๐
Grรผรe
Jonas
Danke, aber wie kann Ich diese Umleitung in der .htaccess umsetzen? Danke und Gruร
Sascha
Wie im Artikel beschrieben:
Redirect 301 / http://neuewebsite.de/
Und das muss Ich dann fรผr jede Seite machen?
Nein, einmal in die .htaccess und gut ist ๐
Okay, super. Vielen Dank
Vielen Dank, mir hat es auch geholfen. ๐
Genau das habe ich gesucht um meine „Plugin-Abhรคngigkeit“ in den Griff zu bekommen. Lieben Dank dafรผr! ๐
Hey Luis,
immer schรถn so wenig Plugins wie mรถglich, finde ich gut ๐
Grรผรe
Jonas
Hallo Jonas ein wirklich toller Artikel!
Zu : Zugriffe auf htaccess verhindern. Wo genau gebe ich den Code welchen Du oben erwรคhnt hast ein? In die vorhandenen htaccess oder muss ich noch einmal eine neue anlegen?
Ich mรถchte meine Login URL verรคndern. Der Login Bereich soll nicht mehr รผber domain…/wp-admin oder wp-login aufrufbar sein, sondern รผber z.B domain…/meinBereich.
Ich habe den Login Bereich zusรคtzlich mit htacess Passwortbereich geschรผtzt.
Nun meine Frage: gibt es einen Code fรผr die htaccess um die Login URL zu verรคndern?(Ich mรถchte kein Plugin hierfรผr nutzen).Wie wรผrde dieser lauten?Und kannn ich den htacess Passwortschutz dann trotzdem noch benutzen?
Danke:)Und einen schรถnen 3.Advent!!!
Viele Grรผรe Merrit
Hey Merrit,
die Codes gehรถren alle in die .htaccess in deinem Hauptverzeichnis. Dort darf es nur eine geben.
Um die URL des Loginbereichs zu verschieben, kannst du den folgenden Code in die .htaccess einfรผgen:
RewriteRule ^admin$ http://DEINE_SEITE.com/wp-login.php [NC,L]
Dadurch erreichst du den Login รผber /admin
Den Passwortschutz รผber die .htaccess kannst du weiterhin nutzen, musst natรผrlich aber den Pfad anpassen auf den er zugreift.
Grรผรe
Jonas
Danke Jonas:)
Wenn ich den Login Bereich รผber meinbereich aufrufen mรถchte, mรผsste ich dann anstatt admin im nachfolgenden Code meinbreich eingeben?
RewriteRule ^admin$ http:// DEINE_SEITE.com/wp-login.php [NC,L]
Danke!!
Genau, es mรผsste wie folgt lauten:
RewriteRule ^ meinbereich$ http:// DEINE_SEITE.com/wp-login.php [NC,L]
Dann sollte es funktionieren ๐
Vielen Dank!
Ich habe fรผr meine Seite ein SSl Zertifikat und alles auf https umgestellt.
Mรผsste ich dann in dem Code https eingeben?
Danke!!
Hey Merrit,
klar, die Pfade mรผssen alle immer auf https:// laufen ๐
Grรผรe
Jonas
Hallo Jonas ich bin es noch einmal.
Ich habe dass mit dem Code: RewriteRule ^ meinbereich$ http:// DEINE_SEITE.com/wp-login.php [NC,L] ausprobiert.
Ich kann mich jetzt รผber meinbereich einloggen.Jedoch ist die Login URL meinewebseite…/wp-admin immer noch aktiv, wie kann ich es erreichen, dass nur meinbereich als Login url funktioniert?
Danke!
Hi Jonas,ich hoffe Du hattest einen guten Start ins Neue Jahr!
zu Deinem Blogeintrag:…… Bei den Spamkommentaren wird dir in WordPress direkt die IP Adresse angezeigt. Fรผr Hackversuche ist es etwas komplizierter, aber trotzdem machbar an die IP Adresse zu kommen. Hierfรผr musst du entweder in die Logfiles deines Servers schauen ……
Wo genau finde ich die Logfiles?
In der Wordpress Installation รผber FTP ?
Danke!
Hey Paul,
Logfiles findest du in einem Ordner auf deinem Webspace. Je nach Hoster heiรt der Ordner unterschiedlich, manchmal sind die Logfiles sogar deaktiviert.
Schau mal nach einem Ordner namens „Usage“ oder „Logs“
Grรผรe
Jonas
[…] wieder Leute, die versuchen, es einem einfacher zu machen – wie hier mit Tipps, was in die .htaccess unbedingt rein […]
hallo,
ich wollte mal Fragen ob jemand hier mir helfen kann. Ich komme in meine WP Seite nicht rein.
User und Pass stimmen aber die Anmeldung bleibt bei drehen und drehen… und passiert nichts
http://www.archmorph.com
Ich habe vieles probiert aber nichts hilft!
MfG
Federico
Hey,
ich wรผrde dir empfehlen erst mal die klassischen Schritte vorzunehmen und alle Plugins / das Theme รผber FTP zu deaktivieren. Vermutlich wird eines der Plugins dieses Problem verursachen.
Grรผรe
Jonas
Hallo Jonas,
„Im Normalfall legt man die meisten Konfigurationen in der .htaccess Datei des Hauptverzeichnisses ab, da diese fรผr diesen gesamten Ordner samt Unterordner gilt, wodurch WordPress .htaccess Regeln fรผr den gesamten Blog รผbernimmt.“
–> welches ist das Hauptverzeichnis? (und ja, die Frage ist selbst mir fast ein bischen peinlich)
Viele Grรผรe,
Antje
Hey Antje,
das Hauptverzeichnis ist der Ort, an dem deine WordPress Installation liegt ๐
Grรผรe
Jonas
danke fรผr die schnelle Antwort… habe eben auch in einem anderem Artikel von dir gelesen, dass die htaccess automatisch erstellt wird bei der wp-installation – das hรคtte mir die Suche auch schon erleichtert ^^
ich habe aber ein groรes Verstรคndnisproblem: mein Hoster ist allinkl, in der Anleitung fรผr manuelle Installation steht, dass man nach dem WP hochladen die in den Unterordner wordpress entpackten Dateien in den meinedomain.de-ordner schieben soll, also /meinedomain.de/wordpress/ zu /meinedomain.de/ —> wenn ich das so mache, ist dann /meinedomain.de/ das Hauptverzeichnis? und was soll das bringen***? Zumal, und da komm ich nicht mit, am Ende der Installationsanleitung steht, dass nach der Installation von WP unter /meinedomain.de/wordpress/ eine neue Datei namens .htaccess erstellt werden soll, die leer sein und lediglich die Zugriffsberechtigung auf 666 gestellt werden soll
*** (reicht es nicht, im wp backend unter Einstellungen die URL entsprechend zu setzen?)
ich hoffe, ich habe meine Frage/n halbwegs verstรคndlich formuliert
Viele grรผรe,
Antje
PS: wenn ich wordpress im Unterordner wordpress lasse, kann man dann die config eine Ebene hรถher nach /meinedomain.de/ schieben und bringt das tatsรคchlich so wahnsinnig viel fรผr die Sicherheit? oder „reicht“ es im Prinzip, deinen Sicherheitsempfehlungen hinsichtlich der htaccess zu folgen und ist damit sicher genug?
PPS: ich bin ganz, ganz dankbar fรผr deine Artikel. andererseits: je mehr man liest, auf umso mehr Dinge wird man gestoรen, von denen man noch nie was gehรถrt hat. und manchmal wรผnscht man sich die Zeiten zurรผck, in denen man die 1-Click-Installation fรผr ausreichend hielt
Nachtrag: die Formulierung „htaccess-Datei des Hauptverzeichnisses“ … dh, fรผr jedes Verzeichnis kann eine eigene htaccess erstellt werden? ist das sinnvoll? was ist, wenn sich Anweisungen widersprechen? wird dann auf die รผbergeordnete zurรผckgegriffen?
Ja, es kann fรผr jedes Verzeichnis eine erstellt werden. Vorrang hat immer die, aus dem jeweiligen Verzeichnis.
Hey Antje,
also fรผr einen Laien ist die Verschiebung nicht ganz so einfach und kann einiges kaputt machen…
Bei der Verschiebung geht es darum, dass du mehrere Installationen besser verwalten kannst und nicht durcheinander kommst.
Grรผรe
Jonas
ich kauf jetzt einfach blogยดnยดroll ๐
Hi,
wenn man die Autorenseite per HTACCESS umleitet, betrifft das bei mir persรถnlich auch den Bulkeditor in Wordpress.
Wenn ich normale Content-Seiten mit dem Bulkeditor bearbeiten mรถchte, werde ich auf die Hauptseite vor dem Speichern umgeleitet, da dieses Formular รผber GET arbeitet und automatisch das ?/&author=XX drin hat. Kann man das umgehen irgendwie? oder hat jemand dasselbe Phรคnomen beobachtet?
okay, habs selbst gelรถst. Wenn man die HTACCESS um eine weitere Condition erweitert und somit das Backend ausschlieรt funktioniert der Bulk-Editor wieder.
`
# Verhindert das einfache Auslesen von Nutzernamen
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} .*author=(. .?) [NC]
RewriteCond %{REQUEST_URI} !/wp-admin/
RewriteRule (.*) /blog/?author= [NC,L,R=301]
`
Danke fรผr deinen Hinweis Chris! ๐
Hilfe,
ch habe die 301 Umleitung so eingegeben wie es hier steht. Jetzt habe ich einen Umleitungsfehler und komme nicht mehr auf meine Website. Warum musste ich eine 301 Umleitung legen, weil ich solchen Ratschlรคgen nachgehe wie dieser hier.
Verdammt, was mach ich dich denn jetzt?
Scheisse geht mir jetzt auch so.
ich glaube von ihm brauchen wir keine Antwort zu erwarten…
aber kann jemand anders hier helfen?
das folgende ist das einzige was bei mir drin steht
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
#301 Weiterleitungen
Redirect 301 / http://paartherapie-hamburg.info
und ich bekomme nur eine 403 fehler angezeigt… danke. ๐
Moin Ped,
als erstes mal: Ruhig Blut ๐ Einfach die hinzugefรผgten Codezeilen wieder raus nehmen, und es lรคuft wieder alles.
Ich kรผmmere mich gleich um eine Lรถsung und schaue nach dem Problem.
Grรผรe
Jonas
<3 geil. das ging ja super schnell! damit habe ich nicht gerechnet. ich nehme alles zurรผck.
ja. die berechtigung habe ich nochmal gecheckt. die datei liegt im hauptverzeichnis. den inhalt habe ich komplett gelรถscht und da steht erstmal gar nichts drin. dennoch :
Forbidden
You don't have permission to access / on this server.
Apache Server at carrierecoaching.de Port 80
Alles lรถschen ist auch keine Lรถsung, denn das folgende muss auf jeden Fall drin stehen bleiben:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
ok. ich habe auch die datei komplett gelรถscht… dann mache ich eine neue und schreibe nur das da rein.
erstmal danke. ich muss leider gleich selber weg. berichte aber wie es lief.
es wรผrde mich eigentlich reichen wenn ich alles auf http://paartherapie-hamburg.info vielleicht mit einer 301 umlenken kann. die seite hat nicht soviel perioritรคt selbst, obwohl ich auch den inhalt nach und nach รผbertragen will.
Dann stelle die Umleitung doch einfach im Control Panel deines Hosters ein, das geht einfacher als mit Code rumzumachen ๐
Liegt deine .htaccess denn im Hauptverzeichnis? Die Regel ist richtig, der Fehler muss woanders liegen.
Hey,
als erstes รถffnest du die .htaccess und entfernst den Code fรผr die Umleitung. Dann lรคuft deine Seite wieder ๐
Wenn es einen Fehler verursacht, dann stimmt irgendwas an dem Code wohl nicht…
Grรผรe
Jonas
Korrekt eingegeben, wie hier beschrieben, verursacht der Code kein Fehler. Irgendwas muss beim Eintragen, fehlerhaft รผbertragen worden sein.
Lรถsung: Per FTP auf den Server verbinden und die รnderungen wieder rรผckgรคngig machen.
HALLO;
Hallo,
ich habe das dann auch so gemacht, also die htaccess geรถffnet und den Code entfernt. danach lief es wieder Vielleicht lag es an meiner defekten URL, die die Endlosschleife verursacht hat. Bevor ich SEO Yoast installiert hatte, war alles in Ordnung. Mittlerweile stimmt gar nichts mehr, die Plugins Smush it und Catchify sind ausgefallen und alles was ich bisher gemacht habe, war fรผr die Katz. Nie im Leben wรผrde ich noch einmal so was machen.Im Netz steht viel Mist und die Kommentare sind auch nicht immer echt. Ich habe gestern Abend mein Problem in der Jobbรถrse von Wordpress eingereicht und hoffe, dass die mir gegen Geld meine Seite wieder in Ordnung bringen. Den Kommis nach zu urteilen, verstehen ja alle immer alles auf Anhieb, nur ich verstehe es nicht. Sorry, war nicht bรถse gemeint, fรผhle mich nur ziemlich im Stich gelassen.
Hallo Jonas,
danke fรผr den tollen Artikel! Im Prinzip habe ich alles verstanden, aber eine Vorab-Frage, um ganz sicher in der richtigen .htaccess-Datei die Verรคnderungen vorzunehmen:
Ich verfรผge รผber 4 Domains. Ist gemeint, dass ich die Modifizierungen jeweils in der .htaccess-Datei der einzelnen Domains vornehme
(- in diesen finde ich auch die von Dir angegebene „Grundregel“:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
allerdings am Beginn steht zusรคtzlich: -)
oder in der .htaccess-Datei die ich im Ordner „logs“ finde
(- dort finde ich aber eine andere „Regel“, nรคmlich – hier ohne die exakten Zahlen:
Options +Indexes
RemoveHandler .html
RemoveType .html
AddType text/html .html
Satisfy any
Order Deny,Allow
Allow from xxx.xxx.xxx.xxx
Deny from all
AuthType Basic
AuthName „Access to /logs“
AuthUserFile /kunden/homepages/xx/xxxxxxxx/htpasswd
Require user xxxxxxxx )
???
Zusatz-Info: Im Ordner „logs“ findet sich in der .htaccess-Datei unter Dateiberechtigungen der numerische Wert 644, in den .htaccess-Dateien der 4 Domains immer der Wert 604! „Ergoogelt“ habe ich dazu, dass 644 bzw. 604 eingesetzt werden soll – wie siehst Du das (- und was ist der Unterschied zwischen 644 und 604? -)?
Liebe neugierige und fragende Grรผรe!
Marie
Hey Marie,
pro Domain eine htaccess ๐
In der htaccess sind Dateiberechtigungen angegeben, verstehe ich das richtig?
Grรผรe
Jonas
Hallo Jonas,
als 1. muss ich um Entschuldigung bitten, denn durch eine Unachtsamkeit habe ich meine Anfrage unvollstรคndig gesendet … trotzdem hast Du die wesentliche Frage geklรคrt – vielen, vielen Dank – nรคmlich, dass jede Domain einzeln bedient werden darf/kann/muss …
Dazu noch die ergรคnzende Frage:
In meiner .htaccess-Datei entspricht der Text Deiner Vorgabe, es existiert aber eine eingeschobene 2. Zeile:
# BEGIN WordPress
Was bedeutet diese Zeile? (Ist wohl OK … oder?)
Und in der Dateiberechtigung finde ich den Wert 604 (nicht wie von Dir vorgeschlagen 644) – โergoogeltโ habe ich dazu, dass 644 oder 604 eingesetzt werden soll/kann โ wie siehst Du das (- und was ist der Unterschied zwischen 644 und 604? -)?
Und, neu, eine letzte Frage: Alle von Dir vorgeschlagenen Befehle in diese schon vorhandene .htaccess-Datei eintragen – also niemals weitere .htaccess-Dateien anlegen, um mehrere, schlanke .htaccess-Dateien zu haben???
Nochmals herzlich fragende Grรผรe!
Marie
Marie
Der gesamte Part mit „#Begin WordPress“ und den darauffolgenden Zeilen darf nicht gelรถscht werden! Trage am besten einfach unterhalb dieses Codeblocks die neuen Regeln ein.
604 passt als Dateiberechtigung auch ๐
Grรผรe
Jonas
Danke fรผr die Infos … ja, genau so werd‘ ich’s machen!
HG Marie
aha, jetzt habe ich meinen Anfrage noch einmal gelesen, aber die eingeschobene Zeile wird nicht angezeigt – aha, weil ein html-Code (das war wohl auch bei der ersten Anfrage der Fall!) – ich versuche es nun so:
spitze Klammer auf – IfModule mod_rewrite.c – spitze Klammer zu
HG Marie
Hallo Jonas, toller Beitrag. Vor allem zum Thema Sicherheit.
Kennst du einen Befehl der alle http:// www Anfragen auf https ohne www weiterleitet?
Irgendwie finde ich da nichts richtig gutes ๐ danke dir!
Moin Florian,
trage einfach unter „Einstellungen“ -> „Allgemein“ die Domain ohne www und mit https ein. Allerdings musst du bei der Umstellung auf SSL noch einiges mehr beachten!
Schau mal hier: https://wp-ninjas.de/wordpress-https/
Grรผรe
Jonas
Hi!
Wenn man das Script „Zugriffe auf .htaccess verhindern“ einfรผgt, funktionieren dann trotzdem 301 redirects ohne Einschrรคnkungen?
Gruร Peter
Moin Peter,
ja, das sollten sie ๐
Grรผรe
Jonas
Hallo Jonas,
vielen Dank fรผr den hilfreichen Artikel!
Ich mรถchte gerne eine 404er Seite ausgeben lassen, wenn die URL nicht mehr vorhanden ist. Bisher wird immer auf die Startseite weitergeleitet. Muss ich das nicht auch in der .htaccess deklarieren? Und wenn ja, was genau mรผsste ich denn eintragen?
Viele Grรผรe
Becca
Moin Becca,
das klingt, als wรคre in der .htaccess oder an einem anderen Ort bereits eine Weiterleitung hinterlegt sein. Wenn du diese findest, einfach rausnehmen ๐
Grรผรe
Jonas
Hallo Jonas,
das Problem ist gelรถst ๐ Sobald man anderen davon berichtet, fรคllt einem plรถtzlich auf, wo der Fehler liegt ๐
Vielen Dank, dass ich es hier loswerden konnte und viele Grรผรe
Becca
Ahh, sehr gut! ๐
Danke fรผr den Beitrag. habe ihn schon lรคnger in meiner Leseliste gehabt, aber es war nie Zeit dafรผr. Nachdem ich aber diese Woche mit meinem Blog an den Start gegangen bin werde ich die .htaccess morgen gleich mal Bearbeiten. Vorallem das mit dem Benutzernamen hat mich etwas schockiert weil ich extra keinen typischen gewรคhlt habe, damit man ihn nicht leicht erraten kann. Das war natรผrlich nur bedingt sinnvoll wenn man ihn doch so leicht auslesen kann. :-O
lg
manu
Hallo Jonas, oder auch andere
WordPress-Spezialisten…
Ich habe auf einer WordPress-Seite den wp-Admin Bereich per htaccess geschรผtzt. Leider kann ich jetzt keine passwortgeschรผtzten Unterseiten mehr verwenden, da ich immer nach meinem htaccess Passwort gefragt werde.
Wie kรถnnte ich die htaccess so konfigurieren, dass trotzdem passwortgeschรผtzte Bereiche mรถglich sind?
Danke im Voraus, alex
Moin Alex,
hast du mรถglicherweise aus Versehen die gesamte Website per htaccess geschรผtzt?
Grรผรe
Jonas
Danke fรผr Deine Antwort,
Ich bin hier fรผndig geworden:
https://www.kuketz-blog.de/htaccess-schutz-wordpress-absichern-teil4/
Was war denn das Problem? ๐
Hallo Jonas, simpel und doch schwierig…
ich wollte meine admin Seite serverseitig schรผtzen, d.h. durch eben die .htaccess.
Auf meiner Seite befinden sich jedoch passwortgeschรผtzte Bereiche (nichts hochdramatisches, aber doch schรผtzenswert)
Nun war es so, dass bei jedem Aufruf der durch WP passwortgeschรผtzten Seite auch das htpasswd gefragt wurde und wird.
Dafรผr gibt es prinzipiell keine Lรถsung…
Auรer mit einem Passwort Plugin, welches ich jetzt fรผr die Inhalte auf der Seite verwende,
gefรคllt mir richtig gut: โpasssterโ
LG Alex
Danke fรผr den g-zip-Tipp: trotz aktivierter Einstellung in ยซWP-Fastest Cacheยป hat das mit g-zip erst durch Deine Ergรคnzung in der htaccess-Datei funktioniert.
I feel Blessed!
Olaf
Hallo Jonas,
sehr schรถn erklรคrt und fรผr den Anfรคnger auch nachvollziehbar. Danke dafรผr!
Ich wollte meine Webseite nach Deiner Erklรคrung so schรผtzen, dass man den Nutzernamen nicht mehr „auslesen“ kann. Also in der htaccess die folgenden Daten eingeben:
# Verhindert das einfache Auslesen von Nutzernamen
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
RewriteRule (.*) /blog/?author= [NC,L,R=301]
habe es auch so vorgenommen (nachdem ich die htaccess zur Sicherheit fรผr mich kopiert habe) dann lies sich die Homepage aber nicht mehr aufrufen, und eine Fehlermeldung war das Ergebnis.
Schade eigentlich.
Was habe ich falsch gemacht?
Danke fรผr die Hilfe
LG Maria-Anne
Moin,
das ist leider aus der Ferne schwer zu sagen. Am besten fragst du mal bei deinem Hoster nach, meistens haben die auch einen hilfreichen und netten Support ๐
Grรผรe
Jonas
Weil ich selbst lange gesucht habe und nichts gefunden hatte:
Alle, die den Ordner „wp-admin“ mit einem zusรคtzlichen Passwortschutz via htaccess versehen sollten den Zugriff auf „admin-ajax.php“ gewรคhren mit
Order allow,deny
Allow from all
Satisfy any
da sonst ajax nicht funktioniert und auรerdem in den Unterordner „js“ ebenfalls eine htaccess packen mit:
Order allow,deny
Allow from all
Satisfy any
Sonst bekommen eventuell WooCommerce-Kunden oder andere Nutzer im Blog auf Seite „my-account/edit-account“ eine ungewollte Passwortabfrage.
Grรผรe
Max
Jau, hier werden die Kommentare nicht richtig escaped!
Es ging um eine Files-Anweisung fรผr jeweils
admin-ajax.php
und
password-strength-meter.min.js
Hallo,
Danke fรผr die wertvollen Tipps.
Gerne wรผrde ich das Auslesen von Nutzernamen verhindern. Habe dazu Deinen Code in der .htaccess eingetragen und es funktioniert soweit.
Allerdings funktioniert nun das WordPress-Werkzeug „Daten exportieren“ (wp-adim/export.php) nicht mehr.
In der Adresszeile im Browser erscheint […]“/blog/?author=“ und meine 404-Seite. Ich erhalte keine Download-Datei mehr.
Gibt es dafรผr eine Lรถsung?
Gruร
Will
Moin Will,
wรคhrend dieser Code aktiv ist, funktioniert das exportieren Werkzeug nicht. Da man das ja aber sowieso eigentlich nie nutzt, ist das grundsรคtzlich kein Problem. Nimm den Code einfach kurz raus, wenn du deine Website mal umziehst und das Werkzeug benรถtigst.
Grรผรe
Jonas
Danke. So hab ich’s dann auch gemacht!
Grรผรe
Will
Hallo,
wird die .htaccess bei jeder WordPress Aktualisierung auch รผberschrieben oder bleiben die Konfigurationen erhalten?
Vielen Dank und schรถne Grรผรe
Sarah
Moin Sarah,
nein, bei Updates werden nur die WordPress-eigenen Dateien รผberschrieben ๐
Grรผรe
Jonas
Vielen Dank, Jonas, fรผr die schnelle Antwort.
Ich hรคtte noch einen Vorschlag fรผr deinen Artikel:
รber die .htaccess kann man ja auch die Schnittstelle XMLrpc deaktivieren, รผber die ja anscheinend auch viele Hacker einfallen.
Vorausgesetzt man benutzt diese Schnittstelle nicht.
Ich hรคtte folgenden Code verwendet:
order allow,deny
deny from all
Und ist es wichtig in welcher Reihenfolge die Code-Snippets in der .htaccess stehen? (Abgesehen davon dass es hinter dem WP-Teil steht)
Hallo. Evlt. kannst Du mir helfen. Ich stehe vor einem Providerwechsel da u.a. meine php-Version veraltet ist und ich nicht mehr WP updaten kann. Mein WP liegt in einem Unterverzeichnis geschรผtzt mit einer htpasswd. Den Umzug an sich werde ich soweit hinkriegen. Nur die htaccess im Rootverzeichnis gibt mir ein Rรคtsel auf. Dort steht in der ersten Zeile FCGIWrapper /home/www/username/fcgid/php54-fcgid .php. Kann ich das lรถschen oder wie gehe ich damit um in meiner neuen Serverlandschaft.
Moin Harry,
frage das am besten deinen neuen Hoster, der kennt seine Serverinfrastruktur am besten ๐
Grรผรe
Jonas
So simpel und bin nicht selber drauf gekommen – Wp-admin nur fรผr ausgewรคhlte IPs zulassen ist genial.
Danke fรผr den Tip!
Moin Wolfgang,
sehr gerne! Achte darauf, dass sich deine IP Adresse allerdings รคndern kann, wenn du keine statische hast ๐
Grรผรe
Jonas
Nรผtzliche Informationen
รber die .htaccess-Datei
Vielen Dank und schรถne Grรผรe
ูAysar
Hey,
ich es auch mรถglich, die wp-admin unterseite per .htaccess zu verschleiern?
spricht die url von http://www.domain.de/wp-admin auf z.b. http://www.domain.de/hidden-login zu รคndern?
Moin Joshua,
dafรผr empfehle ich dir das Plugin „WPS Hide Login“, zu dem ich hier eine Anleitung habe:
https://www.youtube.com/watch?v=sFnMp7nRJNc&t=1s
Grรผรe
Jonas
Super Beitrag und sehr gut erklรคt. Danke dafรผr.
Sehr gerne! ๐
Hi zusammen,
ich finde echt keine Lรถsung oder ich รผbersehe einfach mein Problem. Die Seite hat natรผrlich https:// – und sollte immer umgeleitet von http:// auf https:// – aber das lรคuft nicht. Die Startseite und alle Unterseiten sind weiterhin รผber http:// zu erreichen – was lรคuft da falsch in der .htaccess… kรถnntet Ihr mir helfen…
Danke!
# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen `BEGIN WordPress` und `END WordPress` sind
# dynamisch generiert und sollten nur รผber WordPress-Filter geรคndert werden.
# Alle รnderungen an den Anweisungen zwischen diesen Markierungen werden รผberschrieben.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
# BEGIN WP-Optimize Gzip compression
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType font/x-woff .woff
AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-woff
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/woff
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
# END WP-Optimize Gzip compression
Moin moin,
hast du denn in den Einstellungen unter „Allgemein“ die beiden Adressen auf https geรคndert?
In der htaccess sehe ich zudem keine Weiterleitung…
Hallo,
vielen Dank fรผr die vielen Infos, einiges war fรผr mich noch sehr hilfreich ๐
Lg
Super Veranschaulichung, wie man die wp-config zusรคtzlich sichern kann. Und auch sollte! ๐
Ich finde die Sicherheit bei WordPress ist enorm wichtig geworden. Gerade weil WordPress immer beliebter wird, nicht nur bei Blogs. Es wird also auch fรผr Angreifer beliebter ๐
Super Artikel, in Kombination mit einer Firewall und guten Dateirechten kann man seine Seite relativ sicher machen. Aber leider werden immer wieder Wege gefunden um Schaden anzurichten.
Was man noch erwรคhnen kรถnte:
Ich benutze fรผr alternative Fehlerseiten folgendes in der htaccess:
ErrorDocument 404 /fehlerseite.html
LG, Karin
Moin Karin,
das ist natรผrlich auch nรผtzlich, allerdings muss man hierfรผr in der Lage sein, eine eigene HTML Seite zu erstellen ๐
Grรผรe
Jonas