malnefrage.de
malnefrage.de
Menü
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Ratgeber Login
Frage
Frage
von thitcher

Duplicate Content vermeiden beim Aufruf der Webseite von *.php und *.html?

Hey SEOs & Coders,

Ich habe ein Problem mit meiner Webseite und zwar sind einzelne Seiten sowohl unter *.php wie auch unter *.html abrufbar. Wer sich mit Suchmaschinenoptimierung auskennt weiss, dass dies duplicate Content verursacht. Mein Ziel ist es, alle Seiten nur als .html auszuliefern. Verlinkt sind alle Unterseiten auf die HTML-Version. Leider tauchen nun aber vermehrt Seiten bei Google mit der PHP-Version auf.

Ich habe schon per mod_rewrite und htaccess versucht alle PHP-Scripte wieder auf die HTML-Version der Seite im Apache Server umzuleiten, allerdings funktioniert es nicht wie von mir gedacht. Es scheint eine Umleitungsschleife zu geben.

In der .htaccess habe ich folgende RewriteRule
RewriteRule (.*)\.html$ $1.php [L]
Damit werden alle Aufrufe von HTML-Dateien (test.html) auf die PHP-Scripte umgeleitet. Allerdings kann man dann auch noch eine Seite mit test.php aufrufen. Wie kann man es verhindern, dass PHP-Scripte nur noch über *.html abrufbar sind. Der Aufruf von *.php soll wiederum auf die HTML-Datei umgeleitet werden.

Antwort
Antwort
von Qwerty
Wie du bereits weisst, kannst du mit einer htaccess-Datei URLs die auf .php enden nach .html umschreiben. Problematisch bei deiner RewriteRule-Anweisung ist, dass auch physisch vorhandene html-Dateien ebenfalls umgeleitet werden. Um dieses Problem zu umgehen, kannst du eine RewriteCondition setzen:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)\.html$ /$1.php [L]
Damit wird verhindert, dass die nachfolgende RewriteRule nicht auf bestehende .html-Dateien angewendet wird.

Bleibt noch das Problem mit dem duplicate content.

Damit deine Webseite keine doppelten Inhalte produziert, sollten zusätzlich alle URLs mit der Endung .php permanent auf die .html-Version umgeleitet werden, unter der Bedingen des erstmaligen Aufrufs. Nutze dazu eine 301-Weiterleitung mit folgender RewriteCondition:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+?)\.php$ /$1.html [R=301,L]
Alles in allem würde die Anweisung wie folgt aussehen:
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+?)\.php$ /$1.html [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)\.html$ /$1.php [L]
Kommentar von thitcher
👍 Problem gelöst, danke dir

Ähnliche Fragen
Ich möchte mehrere Slashes beim Aufruf meiner Webseite aus der URL entfernen. Dies soll per mod_rewrite über eine .htaccess Datei erfolgen. Wie kann ich ...
Wer kann mir eine günstige Webdesign Agentur im Raum Hannover empfehlen? Unsere Webseite basiert auf dem Content Management System Typo3 und sollte ...
Ist die Nutzung von Google Maps auf meiner Webseite nicht mehr kostenlos möglich? Wir haben seither eine Google Map zur Anzeige des Standorts unseres ...
Hallo an alle SEOs und Content Marketing PROs, ich habe heute mal eine Frage an euch. Wie prüft ihr die Links für eure Webseiten? Ich habe schon online ...
Hallo, ich bekomme in Microsoft Outlook den Fehler: Bei Aufruf einer MAPI-Funktion ist ein Fehler aufgetreten. Wie kann ich das Problem beheben. Hat ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.