Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

HTML aufruf auf php weiterleiten

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
party
PostRank 5
PostRank 5
Beiträge: 287
Registriert: 08.06.2012, 10:02

Beitrag von party » 17.08.2012, 10:58

Also um html Dateien einfach php fähig zu machen, habe ich per mod_rewrite

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^.*\.html$ %1.php [R=301,L]
den Aufruf auf nun identische php Dateien ausgeführt.

Klappt soweit ganz gut und kann nun html code und ähnliches einpflegen und in der Browserzeile steht immer noch die html Endung, wie gewünscht.

Mein Problem ist DC, denn obwohl kein Link auf eine nun auf php endene Datei hinweist, kann eine identische Seite auch mit .php am Ende aufgerufen werden:

index.html ist dentisch mit index.php und je nach Eingabe steht dies auch so in der Browserzeile.

Wie verhindere ich nun dass .php direkt aufgerufen werden kann, vor allem von den Bots um kein DC zu produzieren.

Per robots txt? aber soll ja auch von dem ein oder anderen Bot ignoriert werden.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Pheidippides
PostRank 8
PostRank 8
Beiträge: 690
Registriert: 29.08.2007, 07:58
Wohnort: Marathon

Beitrag von Pheidippides » 17.08.2012, 11:06

Warum machst du das überhaupt?
Du kannst doch auch html-Seiten mit php parsen lassen. siehe PHP-Extensions.

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 17.08.2012, 11:49

party hat geschrieben:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^.*\.html$ %1.php [R=301,L]
... und in der Browserzeile steht immer noch die html Endung, wie gewünscht.
Kann ich nicht nachvollziehen und mir nicht vorstellen, denn Du versuchst ja von .html auf .php mit 301 weiterzuleiten und somit sollte auch die weitergeleitete URL in der Browserzeile sichtbar werden.

Was Du suchst ist hingegen ein URL Rewriting, wobei nur in einer Richtung keine 301 erforderlich ist.

Code: Alles auswählen

RewriteRule ^(.+)\.html$ /$1.php [L]
In beide Richtungen könnte es dann so aussehen:

Code: Alles auswählen

RewriteRule ^(.+)\.html$ /$1.php?irgend=etwas [QSA,L]
RewriteCond %{QUERY_STRING} !^irgend=etwas(.*)$
RewriteRule ^(.+)\.php$ /$1.html [R=301,L]
Also zuerst einmal wie gewohnt, doch zusätzlich noch einen beliebigen Parameter mit Wert anhängen. Ruft nun jemand statt seite.html eine seite.php auf, wird der wieder auf seite.html geleitet, insofern die noch nicht im QueryString irgend=etwas enthält.

party
PostRank 5
PostRank 5
Beiträge: 287
Registriert: 08.06.2012, 10:02

Beitrag von party » 17.08.2012, 12:57

Also Dake für schnelle Rückmeldungen.
@Pheidippides
html als php parsen lassen geht nicht, da die Seite nicht besonders groß ist und deshalb auch wegen ip etc auf einem kleinen Webspace liegt, wo irgendein Recht wahrscheinlich fehlt um dies zu tun. Umzug auf einen der Server ändert ip und anderes, möchte ich nicht.

Die html Seiten ranken gut und haben auch eine gute verlinkung und die verlinkung ist der Grund warum das ganze so sein soll. Status Quo erhalten und php nutzen ist das ziel.

@Melegrian

Danke Deine Lsg ist nach ersten versuchen genau das was ich erreichen will. Meine Lsg hatte ich aus dem netz und war die erste halb brauchbare Lösung.

Jetzt doch eine Verständnisfrage. in deiner Lsg steht da "irgendwas" im code, wenn ich das weglasse geht es nicht, mit schon, auch wenn die seiten nicht irgendwas heißen, warum?

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 17.08.2012, 13:12

Dieses irgend=etwas ist eine Behelfslösung, um eine Endlosschleife zu verhindern. (Eleganter könnte man es mit THE_REQUEST machen, aber so ist es am einfachsten)

Mit sonstigen Seitennamen etc. hat das irgend=etwas nichts zu tun.

Da kann auch foo=boo stehen oder was auch immer, man brauch halt nur einen Query_string, über den man verhindern kann, dass man nicht die interne Weiterleitung auf die php nochmals auf die HTML weiterleitet.

1.) Also: Aufruf der php ohne Query String: Externe Weiterleitung auf die html (weil die HTML als URL sichtbar sein soll)

2.) Aufruf der HTML: interne (unsichtbare) Weiterleitung auf die PHP und Setzung des Query_String, damit nicht wieder 1.) ausgelöst wird.

party
PostRank 5
PostRank 5
Beiträge: 287
Registriert: 08.06.2012, 10:02

Beitrag von party » 17.08.2012, 14:08

@chris21

Danke für die Erklärung. Hatte im ersten Moment auch eine Endlisschleife im Code vermutet als ich vorhin gelesen habe, aber die Erklärung ist einleutend.

Danke an die Hlefer habe nun was ich brauche und mir damit Arbeit für das Wochenende beschert, die php Dateien einzubinden.

party
PostRank 5
PostRank 5
Beiträge: 287
Registriert: 08.06.2012, 10:02

Beitrag von party » 01.09.2012, 12:28

Da alles eigentlich so funktioniert wie gewünscht, noch eine Verständnisfrage für mich, weshalb das ganze.

Die umschreibung des Domainnamens, das passiert nicht als301, also wieterleitung, sondern als Vorabüberschreibung?

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 01.09.2012, 12:59

party hat geschrieben:Vorabüberschreibung?
Guter Ausdruck, ich bezeichne das immer als URL Rewriting oder als Umschreibung. Ob das die richtigen Bezeichnungen sind, weiß ich ab und an auch nicht so genau. Es wird nichts weitergeleitet, dem Server wird nur mitgeteilt, wenn eine URL aufgerufen wurde, welche Datei er dafür ausliefern soll. Beispiel, aufgerufen wurde abc.html und da diese nicht vorhanden ist, fragst Du nun den Server, ob er so nett wäre, dafür die Datei abc.php auszuliefern, in aller Heimlichkeit ohne dem Browser das mitzuteilen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag