Seite 1 von 1

Duplicate Content bei mod_rewrite html -> php ... ?

Verfasst: 15.11.2007, 14:33
von Onkel Claus
Hallo Froum,

ich habe schon länger eine Website, die bisher alle Seiten mit der
Dateiendung .php angezeigt hat. Jetzt habe ich sie überarbeitet
und dabei mittels mod_rewrite aus den .php Dateien schönere .html
Dateien gemacht.

Folge: Es existiert jede Seite zweimal, nämlich otiginal als .php und
umgeschrieben als .html Seite. => Duplicate Content!!

Da meine Website bereits lange bei Google und Kollegen indexiert
ist, sind natürlich sämtliche .php-Seiten noch gut verlinkt, was dazu
führt, dass Crwaler und Besucher über diese meine Seiten aufrufen.

Beipiel:

https://www.demo.de/sony.php und neu https://www.demo.de/sony.html

Wie kann ich dafür sorgen, dass alle Besucher/Crawler, die noch
eine .php-Seite aufrufen zur neuen .html-Version geführt werden?
Ich habe es mit einem 301 versucht, was aber nicht funktioniert hat:

Code: Alles auswählen

redirect 301 /sony.php http://www.demo.de/sony.html
Zusammen mit dem mod_rewrite läuft es in eine unendliche Schleife
oder so, keine Ahnung.

Code: Alles auswählen

RewriteEngine on
#Options +FollowSymlinks
RewriteBase /

RewriteRule  ^\.htaccess$ - [F]

RewriteRule ^(.*).html$ $1.php

Wer kann mir sagen, wie ich Duplicate Content umgehen kann, ohne
die Endungen wieder auf .php zurück zu ändern?


Danke!
Onkel Claus

Verfasst:
von

Verfasst: 16.11.2007, 08:37
von newcomer
Ich frag mich grad was es für einen Sinn haben sollte eine .php Datei in eine .html Datei umzuändern...
ICh würds eher so umschreiben: www.demo.de/sony/
Ansonsten würd ichs so lassen, ist nur verschwendete zeit

Verfasst: 16.11.2007, 08:41
von SchnaeppchenSUMA
wenn du richtig umgeschrieben hast dürften sich die php-Seiten nich mehr aufrufen lassen sondern immer auf die neuen URLs umleiten ...

Verfasst:
von

Verfasst: 16.11.2007, 14:51
von Onkel Claus
Hallo,


warum ich die html-Endung eingesetzt habe weiß ich auch nicht
mehr so richtig. Ich glaube, es sieht etwas "handgemachter" aus
und weniger nach dynamischen Datenbank-Ergebnissen.

So sieht meine htaccess-Datei aus:

Code: Alles auswählen

RewriteEngine on
#Options +FollowSymlinks
RewriteBase /

RewriteRule  ^\.htaccess$ - [F]
RewriteRule ^(.*).html$ $1.php

ErrorDocument 404 http://www.demo.de/?err=404
ErrorDocument 403 http://www.demo.de/?err=403
ErrorDocument 402 http://www.demo.de/?err=402
ErrorDocument 401 http://www.demo.de/?err=401
ErrorDocument 500 http://www.demo.de/?err=500

redirect 301 /index.php?ref=test http://www.demo.de/index.html
redirect 301 /kontakt/impressum.php http://www.demo.de/info/impressum.html
redirect 301 /kontakt http://www.demo.de/info/kontakt.html
redirect 301 /kontakt/ http://www.demo.de/info/kontakt.html
redirect 301 /about http://www.demo.de/info/sony.html
Aber in meinem Tracking-System sehe ich, dass Crawler
aus Seiten wie

https://www.demo.de/info/impressum[b].php[/b]

zugegriffen haben. also auf die tatsächliche Datei und nicht die
umgeschriebene mit der .html Endung.

Ich will es so haben, dass alle, die eine Datei mit der Endung
.php eingeben auf die jeweilige html-Endung umgeleitet werden.


Wie geht das???


....

Verfasst: 16.11.2007, 16:37
von w3news
Ich hab das mit PHP gelöst:

Code: Alles auswählen

IF ($REQUEST_URI == "/kontakt/impressum.php") {
	header("Status: 301 Moved Permanently");
	header("Location: http://www.demo.de/info/impressum.html"); 
	exit; }
Muss als erstes in der PHP- Seite kommen...

Verfasst: 16.11.2007, 19:04
von Onkel Claus
Super Idee,

ich habe es jetzt so gelöst:

Code: Alles auswählen

$seitenpath = parse_url($_SERVER['REQUEST_URI']); 
$seitenpathteile = explode(".", $seitenpath['path']); 
if ($seitenpathteile[1] == "php") { 
	$neuerseitenpath = $seitenpathteile[0].".html"; 
   	header("Status: 301 Moved Permanently"); 
   	header("Location: ".$neuerseitenpath); 
   	exit; 
} 
Das klappt wunderbar!!


Danke!