{"id":516,"date":"2014-01-28T11:32:32","date_gmt":"2014-01-28T10:32:32","guid":{"rendered":"http:\/\/paulchr.ablass.me\/blog\/?p=516"},"modified":"2014-01-28T21:09:33","modified_gmt":"2014-01-28T20:09:33","slug":"weiterleitungen-redirects-in-der-htaccess","status":"publish","type":"post","link":"https:\/\/paulchr.ablass.me\/blog\/2014\/01\/28\/weiterleitungen-redirects-in-der-htaccess\/","title":{"rendered":"Weiterleitungen (redirects) in der .htaccess"},"content":{"rendered":"<p>Nachdem die letzten Tage eine ganze Reihe von Links zu seit Jahren nicht mehr existierenden Seiten hier angesp\u00fclt wurden und die Google Webmaster Tools schon mahnende Mails verschickten, habe ich mich schlau gemacht wie darauf am besten zu reagieren ist. Standardm\u00e4\u00dfig ist der Http-Status-Header im Falle einer nicht gefundenen Ressource <code>404<\/code>, was aber eine an sich doch eher d\u00fcrftige Information f\u00fcr den aufrufenden Client und auch den Googlebot ist.<br \/>\nAbhilfe schaffen Http-Statuscodes in der <code>.htaccess<\/code>-Datei.<\/p>\n<h3>Http-Statuscode 410: Ressource nicht mehr existent<\/h3>\n<pre><code>RewriteEngine on\r\nRedirect 410 \/relativer\/Link\/zur\/nicht\/mehr\/existierenden\/Ressource\/<\/code><\/pre>\n<p>Bei nicht mehr existenten Links empfiehlt es sich, den Statuscode <code>410<\/code> zur\u00fcckzusenden, der ganz klipp und klar ausdr\u00fcckt dass die angefragte Ressource nicht mehr vorhanden ist und man den Link darauf doch bitte entfernen soll.<\/p>\n<h3>Http-Statuscode 301: Ressource ist an einer anderen Adresse verf\u00fcgbar<\/h3>\n<pre><code>Redirect 301 \/relativer\/Link\/zur\/nicht\/mehr\/existierenden\/Ressource\/ \/relativer\/neuer\/Link\/zur\/umgezogenen\/Ressource\/<\/code><\/pre>\n<p>Wenn sich hingegen nur der Link zu einer Ressource ge\u00e4ndert hat, kann der anfragende Client mit Hilfe des <code>301<\/code>-Statuscodes zur neuen Adresse umgeleitet werden.<\/p>\n<h3>Links<\/h3>\n<p><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/HTTP\/Response_codes\">HTTP response codes<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem die letzten Tage eine ganze Reihe von Links zu seit Jahren nicht mehr existierenden Seiten hier angesp\u00fclt wurden und die Google Webmaster Tools schon mahnende Mails verschickten, habe ich mich schlau gemacht wie darauf am besten zu reagieren ist. Standardm\u00e4\u00dfig ist der Http-Status-Header im Falle einer nicht gefundenen Ressource 404, was aber eine an [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[15,74],"tags":[67,151,150,152,149,153],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2Vohc-8k","jetpack-related-posts":[{"id":568,"url":"https:\/\/paulchr.ablass.me\/blog\/2014\/03\/11\/domainuebergreifene-zugriffe-auf-webfonts-cors\/","url_meta":{"origin":516,"position":0},"title":"Domain\u00fcbergreifene Zugriffe auf Webfonts (CORS)","author":"Paul-Christian Abla\u00df","date":"11. M\u00e4rz 2014","format":false,"excerpt":"Gelegentlich werden Webfonts von einer anderen Domain\/ einem anderen Server eingebunden (Cross Origin Request). Im Zuge dessen kann es vorkommen, dass der Zugriff auf diese Dateien auf Grund der Einhaltung der Same-Origin-Policy abgelehnt wird und die Schriften nicht geladen werden. Gl\u00fccklicherweise gibt es mit Cross Origin Ressource Sharing (CORS) aber\u2026","rel":"","context":"In &quot;Webserver&quot;","block_context":{"text":"Webserver","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/webserver\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":207,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/04\/06\/gzip-komprimierung-in-der-htaccess-datei-aktivieren\/","url_meta":{"origin":516,"position":1},"title":"gzip-Komprimierung in der .htaccess-Datei aktivieren","author":"Paul-Christian Abla\u00df","date":"6. April 2013","format":false,"excerpt":"# BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text\/text text\/html text\/plain text\/xml text\/css application\/x-javascript application\/javascript <\/ifmodule> # END GZIP","rel":"","context":"In &quot;Webserver&quot;","block_context":{"text":"Webserver","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/webserver\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":209,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/04\/06\/cache-dauer-fuer-bestimmte-dateitypen-in-der-htaccess-datei-festlegen\/","url_meta":{"origin":516,"position":2},"title":"Cache-Dauer f\u00fcr bestimmte Dateitypen in der .htaccess-Datei festlegen","author":"Paul-Christian Abla\u00df","date":"6. April 2013","format":false,"excerpt":"<IfModule mod_expires.c> ExpiresActive On ExpiresDefault \"access plus 1 week\" ExpiresByType image\/jpg \"access plus 1 week\" ExpiresByType image\/jpeg \"access plus 1 week\" ExpiresByType image\/png \"access plus 1 week\" ExpiresByType application\/x-shockwave-flash \"access plus 1 week\" <\/IfModule>","rel":"","context":"In &quot;Webserver&quot;","block_context":{"text":"Webserver","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/webserver\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":458,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/09\/25\/missglueckte-anmeldeversuche-von-ip-72-233-119-245\/","url_meta":{"origin":516,"position":3},"title":"Missgl\u00fcckte Anmeldeversuche von IP 72.233.119.245","author":"Paul-Christian Abla\u00df","date":"25. September 2013","format":false,"excerpt":"Zu meiner gro\u00dfen \u00dcberraschung bekam ich heut Abend eine E-Mail mit folgendem Inhalt: 3 ung\u00fcltige Anmeldeversuche (1 Sperrung(en)) von IP: 72.233.119.245Letzter Anmeldeversuch erfolgte mit dem Benutzernamen: username Ich benutze f\u00fcr meine WordPress-Installationen grunds\u00e4tzlich das Plugin Limit Login Attempts, dass nach drei missgl\u00fcckten Anmeldeversuchen die IP des sich Einloggenden f\u00fcr eine\u2026","rel":"","context":"In &quot;WordPress&quot;","block_context":{"text":"WordPress","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/wordpress\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":308,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/06\/12\/einzelne-youtube-videos-automatisch-und-in-endlosschleife-abspielen\/","url_meta":{"origin":516,"position":4},"title":"Einzelne YouTube-Videos automatisch und in Endlosschleife abspielen","author":"Paul-Christian Abla\u00df","date":"12. Juni 2013","format":false,"excerpt":"Um YouTube-Videos automatisch abzuspielen, gen\u00fcgt es de folgenden Parameter an die Video-Url anzuh\u00e4ngen: autoplay=1 Zum Wiederholen in Endlosschleife wird folgender Parameter angeh\u00e4ngt: loop=1 Aber Achtung, mittels iframe-eingebettete Videos ben\u00f6tigen zus\u00e4tzlich noch den playlist-Parameter, da der loop-Parameter nicht hinl\u00e4nglich unterst\u00fctzt wird. Sollte also als Einbettungsmethode das iframe gew\u00e4hlt sein, muss folgendes\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":132,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/02\/24\/responsive-iframe-und-video-elemente\/","url_meta":{"origin":516,"position":5},"title":"Responsive iframe- und video-Elemente","author":"Paul-Christian Abla\u00df","date":"24. Februar 2013","format":false,"excerpt":"Beim Einbetten von Videos innerhalb von iframe- oder video-Elementen in responsiven Websites gibt es in der Regel Probleme bei einer Gr\u00f6\u00dfenver\u00e4nderung ihres Containerelements. Obwohl die Breite des iframe's mittels der Css-Eigenschaft max-width auf 100% gesetzt werden kann, ist davon nicht dessen H\u00f6he betroffen. Um dieses Problem zu beheben, gibt es\u2026","rel":"","context":"In &quot;Css&quot;","block_context":{"text":"Css","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/516"}],"collection":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/comments?post=516"}],"version-history":[{"count":5,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/516\/revisions"}],"predecessor-version":[{"id":522,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/516\/revisions\/522"}],"wp:attachment":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/media?parent=516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/categories?post=516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/tags?post=516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}