htaccess: mod_rewrite will nicht
Phil
- programmiertechnik
Huhu ihrs!
Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.
Ich fange gerade an, habe bisher diesen Code:
RewriteEngine on
RewriteCond %{REQUEST_URI} /(.*).htm$
RewriteRule (.*).htm$ /index.php?site=$1
Aber irgendwie klappt das schon nicht. Wenn ich nun z.B. seite.htm aufrufe, dann soll index.php?site=seite aufgerufen werden, stattdessen spuckt mir mein Server aus, dass seite.html nicht gefunden werden könnte *schulterzuck*
mod_rewrite ist auf meinem Server installiert, so schlimm ists mit mir nun auch wieder nicht ;) Aber wüsstet ihr, woran das liegen könnte?
CU
Phil
Werden sonstige Angaben in der .htaccess ausgeführt?
Werden sonstige Angaben in der .htaccess ausgeführt?
Ja, alle (Fehlerseitenumleitung und n paar Ad Aplication für bestimmte dateien). Die habe ich aber schon rausgeschnitten, funzt trotzdem net :(
CU
Phil
Hallo Phil,
Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.
Suchmaschinen ist es egal, ob PHP oder nicht. Ich würde mod_rewrite eher für eine nach außen sinnvolle erscheinende Strukturierung verwenden als für Suchmaschinen.
Ich fange gerade an, habe bisher diesen Code:
RewriteEngine on
RewriteCond %{REQUEST_URI} /(.*).htm$
RewriteRule (.*).htm$ /index.php?site=$1
Bei mir funktioniert das. Ich würde zwar noch ein
RewriteBase /
reinschreiben, aber Deine Konstruktion funktioniert auch ohne.
mod_rewrite ist auf meinem Server installiert, so schlimm ists mit mir nun auch wieder nicht ;) Aber wüsstet ihr, woran das liegen könnte?
Keine Ahnung... Was steht denn eigentlich noch in der .htaccess drin?
Viele Grüße,
Christian
Hi Christian!
Keine Ahnung... Was steht denn eigentlich noch in der .htaccess drin?
Zum Testzwecke nichts, funktioniert trotzdem net.
CU
Phil
Moin!
Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.
Suchmaschinen ist es egal, ob PHP oder nicht. Ich würde mod_rewrite eher für eine nach außen sinnvolle erscheinende Strukturierung verwenden als für Suchmaschinen.
Ganz genau. Zumal die Änderung bzw. Maskierung der PHP-Seiten als HTML-Seiten ja ohnehin _alle_ Clients betrifft. Das kann ja nur wirken, wenn alle Links in der Site auch geändert werden und auf ".htm"-Seiten zeigen. Sonst haben die Suchmaschinen nichts davon.
Ich fange gerade an, habe bisher diesen Code:
RewriteEngine on
RewriteCond %{REQUEST_URI} /(.*).htm$
RewriteRule (.*).htm$ /index.php?site=$1Bei mir funktioniert das. Ich würde zwar noch ein
RewriteBase /
Ich frage mich, warum die RewriteCond da drinsteht? Die prüft nichts, was die RewriteRule nicht auch schon prüfen würde.
Ein Studium der mod_rewrite-Doku, insbesondere der Erklärung, welche Regeln wann abgearbeitet werden, dürfte das genauer erklären.
Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.
- Sven Rautenberg
Hallo Sven,
Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.
Jain. Dachte ich eigentlich auch, allerdings funktioniert der Code, den Phil gepostet hat, bei mir (Apache 2.0.45, Windows 98 SE) auch ohne RewriteBase.
Viele Grüße,
Christian
Huhu!
Ich hab noch den Apachen 1.3. irgendwas auf meinem Host, ist das ein Hindernis?
CU
Phil
Hallo Phil,
Ich hab noch den Apachen 1.3. irgendwas auf meinem Host, ist das ein Hindernis?
Eigentlich nicht. Hast Du es denn mit einer RewriteBase-Angabe probiert? Vielleicht kommt der Apache2 in bestimmten Situationen ohne aus, wo der Apache1.3 nicht ohne auskommt? (laut Doku sehe ich da keinen Unterschied, aber man weiß ja nie)
Viele Grüße,
Christian
Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.
Jain. Dachte ich eigentlich auch, allerdings funktioniert der Code, den Phil gepostet hat, bei mir (Apache 2.0.45, Windows 98 SE) auch ohne RewriteBase.
Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.
Hallo Johannes,
Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.
Huh? Mein Apache hört nur auf dem Loopback-Interface - warum sollte ich ihn dann updaten?
Erstaunte Grüße,
Christian
Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.
Huh? Mein Apache hört nur auf dem Loopback-Interface - warum sollte ich ihn dann updaten?
Aufgrund von vielen Bugfixes, u.A. bezüglich mod_rewrite.