Seite 1 von 1

rewrite html in php

Verfasst: 24.03.2009, 22:13
von rotkiv
hi leute
ich hoffe, ich nerve nicht mit einer trivialen frage

ich habe bis jetzt immer schöne seiten mit *.html

das neue programm produziert aber *.php

ich denke, das könnte ich mit einer rewrite rule lösen.

d.h. einfach die alten *.html auf gleichlautende *.php mit 301 umleiten.

könnt ihr mir helfen?

vielen dank

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Re: rewrite html in php

Verfasst: 24.03.2009, 23:15
von Mork vom Ork
rotkiv hat geschrieben:das neue programm produziert aber *.php

ich denke, das könnte ich mit einer rewrite rule lösen.
Das wäre wohl die Lösung, die am schnellsten umzusetzen ist.

Du musst allerdings in jedem Falle auch das „neue Programm“ dazu bringen, .html-Endungen auszuspucken, d.h. die Ausgabe von URLs an Webbrowser korrigieren. mod_rewrite bearbeitet nur die Gegenrichtung, Anfragen von Webbrowsern.
Du solltest dir überlegen, ob du dann nicht auch gleich einmalig alle .php-Dateien in .html-Dateien umbenennst, anstatt ständig mod_rewrite alle Anfragen an .html-URLs in .php-URLs umzuwandeln. Nichtsdestotrotz:
d.h. einfach die alten *.html auf gleichlautende *.php mit 301 umleiten.
/.htaccess:

Code: Alles auswählen

RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*)\.html$ $1.php
Das Muster (.*)\.html$ greift sich alle Anfragen, die auf .html enden, der Teil vor dem .html wird in einer Variablen abgelegt (wegen der runden Klammern). Anschließend prüft die RewriteCond-Zeile, ob im Verzeichnis des Hosts eine Datei mit gleichlautendem Namen, jedoch mit der Endung .php (%{DOCUMENT_ROOT}/$1.php, $1 ist der Inhalt der ersten runden Klammer im RewriteRule-Muster) existiert (-f). Ist das der Fall, wird die Anfrage durch RewriteRule auf diese Datei umgebogen ($1.php).

Verfasst: 25.03.2009, 08:25
von rotkiv
super,
nur eines habe ich noch nicht ganz kapiert:

die neuen seiten sind php und die urls sollen auch php bleiben
nur google hat derzeit die html im index und diese sollen auf die php umgeleitet werden sodass in ein paar monaten google die html mit php ersetzt.
ist doch dann richtig so?

dann brauche ich nur den eintrag in htaccess beachten, sonst nichts, oder?

vielen dank

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

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 25.03.2009, 10:18
von rotkiv
ok, habe ein bisschen rumprobiert, es dürfte so gehen, aber die url in der adresszeile ändert sich nicht, bleibt bei .html - das wäre ja dann duplicate content?

Verfasst: 25.03.2009, 11:49
von Mork vom Ork
rotkiv hat geschrieben:die neuen seiten sind php und die urls sollen auch php bleiben
nur google hat derzeit die html im index und diese sollen auf die php umgeleitet werden sodass in ein paar monaten google die html mit php ersetzt.
Achso, ich dachte, du wolltest die .html-URLs behalten, weil du von „schönen Seiten mit *.html“ sprachst.

Hänge an die RewriteRule-Zeile die Option [R=301] an, dann wird aus dem internen Umbiegen eine externe Dauer-Weiterleitung:

RewriteRule (.*)\.html$ $1.php [R=301]

Verfasst: 25.03.2009, 15:58
von rotkiv
klappt ja fast, jetzt macht er mir aber einen zweiten backslash nach der hauptdomain:
https://www.lindenapo.info//aktuelles/u ... /index.php
statt
https://www.lindenapo.info/aktuelles/un ... /index.php

bitte ein letztes mal um hilfe

danke

Verfasst: 25.03.2009, 16:00
von JohnBi
hier das müsste dir helfen

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$

Verfasst: 25.03.2009, 16:07
von rotkiv
jetzt haben aber alle URLs einen doppelten backslash
ich wollte ihn eigentlich weg haben

trotzdem danke

Verfasst: 25.03.2009, 16:08
von JohnBi
Dann hab ich keine Ahnung, ich hab meinen doppelten Backslash damit wegbekommen der hat alle // auf / umgeleitet ...

Verfasst: 25.03.2009, 22:11
von Mork vom Ork
rotkiv hat geschrieben:klappt ja fast, jetzt macht er mir aber einen zweiten backslash nach der hauptdomain:
https://www.lindenapo.info//aktuelles/u ... /index.php
Pfui. Probiere dies:

RewriteRule (.*)\.html$ http://www.lindenapo.info/$1.php [R=301]

Du gibst also die komplette URL selbst vor, anstatt mod_rewrite die Domain ergänzen zu lassen. Hast du dann immernoch einen doppelten Schrägstrich, entferne einfach jenen zwischen .info und $1.

Verfasst: 26.03.2009, 07:48
von rotkiv
super, das wars

vielen dank

hast du eine amazon wishlist?