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
Pfui. Probiere dies:
RewriteRule (.*)\.html$ ht
tp://
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?