(erledigt) Probleme htaccess Rewrite-Rules

Alles, was den Apache betrifft, kann hier besprochen werden.

(erledigt) Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 14:30

Hallo und guten Tag an alle Leute hier,

seit Stunden versucht sich ein Newbie nun an seiner htaccess-Datei und
kommt einfach nicht zu Potte. Ich finde das Problem trotz zahlreicher
Tutorialseiten einfach nicht :(

Was meine Datei können soll:

a.) test.de zu http://www.test.de umleiten, klappt soweit
b.) Endung .php in .htm wandeln, klappt soweit
c.) Errors 401, 403, 404 auf index.htm leiten, klappt - außer das die fehlerhafte Seite im Browser stehen bleibt :(
d.) eine Seite buchung-PLATZHALTER.htm soll aufgerufen werden können, die angelegte Datei heißt buchung-.htm
Platzhalter, weil die htaccess global verwendet werden soll. Es klappt aber einfach nicht :/

Hier mal meine Chaos -Datei:

Code: Select all
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_URI} buchung-%{HTTP_HOST}.htm?$
RewriteRule ^(.*)$ buchung-.htm? [L,QSA]

ErrorDocument 401 /index.htm
ErrorDocument 403 /index.htm
ErrorDocument 404 /index.htm


Kann wer einen kleinen Tipp geben, bin kurz vorm Austicken :( Mir glüht schon der Kopf gwaltig,

liebe grüße
Chris
Last edited by lohfink on 28. March 2010 19:53, edited 1 time in total.
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 14:50

Code: Select all
RewriteRule ^(.*).htm$ $1 [L]


Was soll die o.g. Zeile? Die würde ich mal löschen, finde ich auch im Anforderungsprofil nicht. Da wird ja schon die buchung-xxxx.htm weggefressen, sicherlich ungewollt.

Code: Select all
RewriteCond %{REQUEST_URI} buchung-%{HTTP_HOST}.htm?$
RewriteRule ^(.*)$ buchung-.htm? [L,QSA]


Das sieht ganz merkwürdig aus, vor allem mit dem Fragezeichen am Ende (Fragezeichen sind nicht in der URI). Außerdem geht das in einer Zeile besser:

Code: Select all
RewriteRule buchung-%{HTTP_HOST}\.htm buchung-.htm


Eine Condition braucht man da nicht, die steht bereits in der Rule drin. Die Flags [L, QSA] habe ich nicht nachgeschaut, L macht hier keinen Sinn, QSA weiß ich nicht auswendig, wozu brauchst Du das?

D.h. aber auch, der "Platzhalter" ist nicht irgendein Platzhalter, sondern der HTTP_HOST, also www.test.de - d.h. Du fragst nur auf buchung-www.test.de.html ab?!
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 15:00

Hallo Nobbie!!

Danke danke, für deine schnelle Antwort zu meinem Problem, habe es mal eben abgeändert,
aber es klappt nun noch mehr nicht:

- 404 usw. wird nicht mehr auf die Index geleitet, ging vorher..
Scheinbar wandelt er .php nicht mehr in .htm, aber ich sollte diese Zeile doch entfernen?
Seitdem klappt es nicht mehr..?

- Buchungsseite geht auch nicht (Error 404 - Diese Seite ist nicht vorhanden)
Es liegt eine Datei in der Base-Dir, die buchung-.php heißt.

Hier die Datei

Code: Select all
RewriteEngine On
RewriteBase /

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

RewriteRule buchung-%{HTTP_HOST}\.htm buchung-.htm

ErrorDocument 401 /index.htm
ErrorDocument 403 /index.htm
ErrorDocument 404 /index.htm


Ist noch irgendwo ein Bock drin?! :(
Ich glaube das Hauptproblem ist nur noch, dass er .php nicht in .htm wandelt, oder?

Ich danke Dir so herzlich, hat mich schon so viel Zeit gekostet heute

gruss
Chris
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 15:16

lohfink wrote:hat mich schon so viel Zeit gekostet heute


Nur heute? Wie süß!

Dann investiere noch mal ein paar Tage od. Wochen - das ist nun einmal schwierig und nur üben übt. Wirst Du schon auf Dauer herausfinden, was faul ist. Ich müßte das genau so testen wie Du.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 15:22

ja, aber du hast doch gesagt ich soll die eine Zeile rauslöschen, sie
würde keinen Sinn ergeben? Ist denn die Umwandlung von .php zu .htm
nun noch drin in meiner htaccess?

:(

Danke..
chris
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 15:34

So, nun geht .php -> .htm wieder,
aber die Rule für das Rewriting buchung-HOST.htm aus der Datei buchung-.php
immer noch nicht

Und Errors wie test.de/ndcbckidhs werden zwar auf die Index geleitet,
aber die fehlerhafte URI bleibt im Browser stehen, das kenne ich normal
anders?

Code: Select all
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.php [L]

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

RewriteRule buchung-%{HTTP_HOST}\.htm buchung-.htm

ErrorDocument 401 /index.htm
ErrorDocument 403 /index.htm
ErrorDocument 404 /index.htm


Vielleicht findet sich ja noch jemand, der mehr Lust hat, mir zu helfen.
Ich würde mich sehr freuen!

lg chris
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 16:20

lohfink wrote:So, nun geht .php -> .htm wieder,


Jetzt steht auch eine neue (bessere) Rule drin. Die andere war falsch.

lohfink wrote:Und Errors wie test.de/ndcbckidhs werden zwar auf die Index geleitet,
aber die fehlerhafte URI bleibt im Browser stehen, das kenne ich normal
anders?


Ne, das kennst Du normal nicht anders, und die Angabe Errordocument ist auch keine Umleitung, sondern definiert nur den Inhalt, der im Fehlerfall angezeigt wird - die URL im Browser bleibt stehen.

lohfink wrote:Vielleicht findet sich ja noch jemand, der mehr Lust hat, mir zu helfen.


Sinnvoller ist es, dass Du lernst zu debuggen und zu testen.
Last edited by Nobbie on 28. March 2010 16:22, edited 1 time in total.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 16:22

Nobbie wrote:Sinnvoller ist es, dass Du lernst zu debuggen und zu testen. Und vor allem nicht irgendwelche RewriteRules irgendwo abschreiben, ohne zu wissen, was da passiert. Eine Rule, die aus datei.php den Wert datei.htm macht, gibt es beispielsweise nicht in Deiner Datei. Dann müßte doch logischerweise irgendwo an irgendeiner Stelle auch mal "php" auftauchen - siehst Du so etwas?


Ähmm... ja? Dritte Zeile? Es ja aber auch..
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 16:23

lohfink wrote:Ähmm... ja? Dritte Zeile? Es ja aber auch..


Habe ich auch inzwischen gesehen, ich hatte gedacht, Du hättest die alte (falsche) Zeile wieder eingesetzt.

P.S.:
>RewriteRule ^(.*)\.htm$ $1.php [L]

Warum tust Du immer das [L] hinten dran? Dadurch wird die Bearbeitung an dieser Stelle beendet, wenn die Rule zutrifft. Willst Du das?
Last edited by Nobbie on 28. March 2010 16:26, edited 1 time in total.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 16:25

nee :)
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 16:28

Nobbie wrote:Sinnvoller ist es, dass Du lernst zu debuggen und zu testen.


Du hast schon recht Nobbie, aber ich weißt nicht wie? Ich teste an meinem
Problem mit RewriteRule buchung-%{HTTP_HOST}\.htm buchung-.htm
schon den ganzen Tag und habe schon 100 Sachen versucht..

Kann man per htaccess denn auch nur die Subleveldomain abfragen,
nicht den gesamten host? Also "testdomain" statt "testdomain.de".
Gibt es da einen Platzhalter?
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 17:31

Hab jetzt mal

Code: Select all
RewriteCond %{HTTP_HOST} buchung-.php
RewriteRule ^(.*) buchung-%{HTTP_HOST}\.htm [L,R=301]


und

Code: Select all
RewriteCond %{HTTP_HOST} buchung-.htm
RewriteRule ^(.*) buchung-%{HTTP_HOST}\.htm [L,R=301]


getestet.. auch ohne Erfolg. Das macht mich noch wahnsinnig :(

Kann man den ausgelesenen Host um ".de" erleichtern oder
direkt nur die Sublevel auslesen, anstatt mit TLD-Endung?
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 17:47

Bevor Du da nun mit HTTP_HOST arbeitest, probier doch erst aus, ob es mit irgendeinem Pattern geht:

Code: Select all
RewriteRule buchung-(.*)\.htm buchung-.htm


Übrigens wird dabei so oder so nicht die URL im Browser oben überschrieben - ich hoffe, dass Dir das klar ist. Es wird nur intern auf eine andere Datei verwiesen als oben eingegeben.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Probleme htaccess Rewrite-Rules

Postby lohfink » 28. March 2010 17:55

Hi Nobbie,

danke nochmal für deine Mühe!

Nun, vielleicht ist noch ein wenig unklar worum es genau geht
bzw. was das Spielchen soll:

Wir haben in der Firma mehrere Reiseseiten zu verschiedenen
Reisezielen. Damit unser internes Buchungssystem dies
verarbeiten kann, wäre halt die Ideallösung, dass beim Aufruf
von andalusien.de dort die Seite buchung-andalusien.htm
aufgerufen wird, zur Suchmaschinenoptimierung auch halt.

So, nun ist es so daß wir die Dateien für mehrere Reiseprojekte
anbieten und ich möchte nicht immer die htaccess je
nach Reiseziel ändern. Verstehst Du?

Es muss also die Datei buchung-.php in buchung-HOSTNAME.htm,
idealerweise sogar in buchung-SUBLEVELDOMAIN.htm umgeschrieben
werden.

Dein Vorschlag mit dem Pattern geht leider auch nicht :(

gruss
chris
lohfink
 
Posts: 13
Joined: 28. March 2010 12:57

Re: Probleme htaccess Rewrite-Rules

Postby Nobbie » 28. March 2010 18:45

Dabei verstehe ich aber nicht,

a) warum der Name so bescheuert buchung-.php sein soll, wozu der beknackte Bindestrich?
b) wieso für jedes Reiseziel auch noch eine Subdomain vorhanden sein soll?

Viel sinnvoller wäre doch, die Pattern als Parameter an das Script durchzureichen:

Code: Select all
RewriteRule buchung-(.*)\.htm buchung.php?target=$1


P.S.: Habe mir die Mühe gemacht und die Rule lokal getestet - läuft tadellos.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 18 guests