online 1
gast (50)

/ Forum / Webseiten/HTML

Webseiten/HTMLWebseiten/HTML

Fragevon Maggi69 vom 14.05.2022, 16:18 Options

Lösung

mod_rewrite-Rules klappen nur auf lokaler Homepage, nicht auf Online-Subdomain

Hallo mod_rewrite-Gemeinde,
Ich hab ein Problem mit meinen neudefinierten mod_rewrite-Rules:

--------------
1. LOKAL:
--------------
Auf meiner lokalen Homepage, die unter UniformServer unter Windows läuft, funktionieren die neuen mod_rewrite-Rules, die ich in der .htaccess-Datei abgelegt habe:

Die komplette url im Browser lautet dort dann http://localhost/schmetterlinge-bayern-bw/..
also z.B. http://localhost/schmetterlinge-bayern-bw/portrait-Triodia+sylvina+Ampfer-Wurzelbohrer.html und wird intern erfolgreich umgewandelt in
http://localhost/schmetterlinge-bayern-bw/arten-portraits.php?view=Triodia/sylvina/Ampfer-Wurzelbohrer
-----------------------------------------

RewriteEngine On

#
#von: portrait-Triodia+sylvina+Ampfer-Wurzelbohrer.html
#nach: arten-portraits.php?view=Triodia/sylvina/Ampfer-Wurzelbohrer
#Achtung: RewriteRule mit itsme-parm vor der allgemeineren RewriteRule ohne itsme definieren !
RewriteRule ^portrait-(.*)\+(.*)\+(.*)\.html&itsme=true$ arten-portraits.php?view=$1/$2/$3&itsme=true [L]
RewriteRule ^portrait-(.*)\+(.*)\+(.*)\.html$ arten-portraits.php?view=$1/$2/$3 [L]
#
#von: galerie-00063+Triodia+sylvina+Ampfer-Wurzelbohrer+S_01.html
#nach: art-galerie.php?view=00063/Triodia/sylvina/Ampfer-Wurzelbohrer/S_01
#Achtung: RewriteRule mit itsme-parm vor der allgemeineren RewriteRule ohne itsme definieren !
RewriteRule ^galerie-(.*)\+(.*)\+(.*)\+(.*)\+(.*)\.html&itsme=true$ art-galerie.php?view=$1/$2/$3/$4/$5&itsme=true [L]
RewriteRule ^galerie-(.*)\+(.*)\+(.*)\+(.*)\+(.*)\.html$ art-galerie.php?view=$1/$2/$3/$4/$5 [L]
-----------------------------------------

---------------
2. ONLINE:
---------------
Auf meiner Online-Test-Subdomain , die bei 1und1 (Homepage Perfect) unter Unix läuft, funktionieren diese mod_rewrite-Rules leider nicht, es kommt die HTML-Fehlermeldung „Error 404 - Not found - Die angegebene Seite konnte nicht gefunden werden.“.

Die komplette url im Browser lautet dort dann http://www.test.schmetterlinge-bayern-bw.de/..
-> also z.B. http://www.test.schmetterlinge-bayern-bw.de/portrait-Triodia+sylvina+Ampfer-Wurzelbohrer.html

Die Test-Subdomain liegt physikalisch auf dem Webspace-Pfad /Test
Die .htaccess-Datei liegt im Verzeichnis /Test und hat folgenden Inhalt:

------------------------------------------------------
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

#Dummy-Rules für Tests
#RewriteRule ^arten-portraits.php$ arten-liste.php [L]
#RewriteRule ^arten-portraits/(.*).html$ arten-liste.php [L]

#
#von: portrait-Triodia+sylvina+Ampfer-Wurzelbohrer.html
#nach: arten-portraits.php?view=Triodia/sylvina/Ampfer-Wurzelbohrer
#Achtung: RewriteRule mit itsme-parm vor der allgemeineren RewriteRule ohne itsme definieren !
RewriteRule ^portrait-(.*)\+(.*)\+(.*)\.html&itsme=true$ arten-portraits.php?view=$1/$2/$3&itsme=true [L]
RewriteRule ^portrait-(.*)\+(.*)\+(.*)\.html$ arten-portraits.php?view=$1/$2/$3 [L]
#
#von: galerie-00063+Triodia+sylvina+Ampfer-Wurzelbohrer+S_01.html
#nach: art-galerie.php?view=00063/Triodia/sylvina/Ampfer-Wurzelbohrer/S_01
#Achtung: RewriteRule mit itsme-parm vor der allgemeineren RewriteRule ohne itsme definieren !
RewriteRule ^galerie-(.*)\+(.*)\+(.*)\+(.*)\+(.*)\.html&itsme=true$ art-galerie.php?view=$1/$2/$3/$4/$5&itsme=true [L]
RewriteRule ^galerie-(.*)\+(.*)\+(.*)\+(.*)\+(.*)\.html$ art-galerie.php?view=$1/$2/$3/$4/$5 [L]

------------------------------------------------------

Ich hatte aus Testgründen auch mal die einfache Rule
RewriteRule ^arten-portraits.php$ arten-liste.php [L]
Aktiviert
, diese bringt aber denselben Fehler.



Ich habe natürlich auch noch eine Online-Prod-Haupdomain (www.schmetterlinge-bayern-bw.de), auf der ich der Ganze dann später auch noch funktionieren soll.
Die Proddomain liegt physikalisch auf dem Webspace-Pfad /Prod


->Frage ist nun also, brauche ich für meine lokale Webseite, für die Prod-Domain und die Test-Subdomain hier jeweils unterschiedliche Rewrite-Rule-Versionen und wenn ja welche ?

Ich hoffe hier kann mir jemand helfen.
Würde mich sehr über Eure Unterstützung freuen !!
Gruß
Mark


Antwort schreiben

Antwort 1 von gast44 vom 14.05.2022, 17:10 Options

Ist auf dem 1und1-Server Rewrite überhaupt aktiviert? Oftmals ist Billig-Webspace bzgl. Rewriting eingeschränkt, das erzeugt dann aufgrund der htaccess u.a. die genannten Error-Codes.

Antwort 2 von Maggi69 vom 14.05.2022, 17:32 Options

Hallo gast44,
Der u.g. Standard-Rewrite-Teil , um aus einer www-losen url eine www-url zumachen funzt ja, also klappt modrewrite schon grundsätzlich.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

Gruß
Mark

Antwort 3 von maggi69 vom 20.05.2022, 13:13 Options

Problem ist nun gelöst:
Auch wenn ich hier im Forum leider keine weiterhelfende Antwort erhalten habe, will ich Euch die eimfache Lösung nicht vorenthalten:

1.) In der Standard-RewriteRule am Anfang der .htaccess-Datei muß NC statt L stehen, sonst werden die folgenden Rules nicht mehr ausgewertet.
2.) Beim 1und1-Apache-Server muß im Ziel-Ausdruck ein führender Slash "/" vorhanden sein (zumindest ist er standard,äßig so konfiguriert).
-> Bei meinem lokalen Uniform-Apacheserver ist dies andersrum, hier muß der führende Slash fehlen:
lokal:
RewriteRule ^arten-portraits.php$ arten-liste.php [L]
1und1:
RewriteRule ^arten-portraits.php$ /arten-liste.php [L]

Gruß
Mark

Antwort 4 von yoyo1987 vom 21.05.2022, 15:35 Options

Hallo Maggi69,
danke für den Tipp. du bist einfach ein Held!

Gruß

yoyo1987

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026