Seite 1 von 1

Ordner "vorgaukeln" mit htaccess?

Verfasst: 27.10.2004, 17:57
von pampl
RewriteRule ^polyphone_klingeltoene,(.*),(.*),(.*)(\.html?)$ index.php4?seite=polyphone_klingeltoene_list&name=$1&cat=$2&p=$3 [L]

Mit diesem Befehl leite ich zur Zeit Abfragen wie
polyphone_klingeltoene,Rock,2,1.html
auf
index.php4?seite=polyphone_klingeltoene_list&name=Rock&cat=2&p=1
um.


Ich würde nun gerne die erste Datei so aufrufen, dass es wie eine Ordnerstruktur aussieht:

polyphone_klingeltoene/Rock/2,1.html


Wenn ich aber oben statt den Punkten ein Komma einsetze, gibt es einen Scriptfehler...
Wie muss ich das anstellen (möglichst ohne den Ordner wirklich zu erstellen)?

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Verfasst: 27.10.2004, 18:59
von Jörg
die entsprechenden Kommata durch einen Slash ersetzen:

Code: Alles auswählen

RewriteRule ^polyphone_klingeltoene/(.*)/(.*),(.*)(\.html?)$ index.php4?seite=polyphone_klingeltoene_list&name=$1&cat=$2&p=$3 [L]

Verfasst: 27.10.2004, 20:33
von pampl
Gibt folgenden Fehler:

Warning: main(polyphone_klingeltoene.php4/Neuheiten/1005,1.php4): failed to open stream: Not a directory in /is/htdocs/22385/www.hammerpage.de/index.php4 on line 99

Warning: main(): Failed opening 'polyphone_klingeltoene.php4/Neuheiten/1005,1.php4' for inclusion (include_path='./:/usr/share/pear/') in /is/htdocs/22385/www.hammerpage.de/index.php4 on line 99


Ich bin bei diesen htaccess Sachen nicht so der Freak, also poste ich lieber mal die ganze htaccess datei:

RewriteEngine On
RewriteRule ^polyphone_klingeltoene/(.*)/(.*),(.*)(\.html?)$ index.php4?seite=polyphone_klingeltoene_list&name=$1&cat=$2&p=$3 [L]

RewriteRule ^(.*).html$ index.php4?seite=$1

Verfasst:
von

Verfasst: 27.10.2004, 20:53
von Caterham
Hi,

Code: Alles auswählen

RewriteRule ^(.*).html$ index.php4?seite=$1
muss jedenfalls lauten:

Code: Alles auswählen

RewriteRule ^(.*)\.html$ index.php4?seite=$1
Woher kommt die URI polyphone_klingeltoene.php4/Neuheiten/1005,1.php4? Hast du ein Script namens polyphone_klingeltoene.php4?

Gruß
Robert

Verfasst: 27.10.2004, 21:02
von pampl
das ist das, was ausgegeben wird, wenn ich polyphone_klingeltoene/Neuheiten/1005-1.html aufrufe.

die 2. regel hat aber ohne den backslash schon vorher funktioniert.

Verfasst: 28.10.2004, 09:23
von Caterham
die 2. regel hat aber ohne den backslash schon vorher funktioniert.
Weil der Pun kt für jedes belibige Zeichen steht (--> läuft auch bei aaahtml).

Wie bindest du die Datei in Zeile 99 ein?
per include('polyphone_klingeltoene.php4'); ? Wie da das Ergebnis rauskommt - auch mit .php4 am Ende, finde ich recht komisch.

Verfasst: 28.10.2004, 10:00
von pi-de
Rufe es mal so auf:

polyphone_klingeltoene/Neuheiten/1005,1.html

Dein Fehler liegt anscheinend nicht in htaccess sondern in
php. Vielleicht hast du beim Include ein 'PHP' zu viel dazu geschrieben?

Verfasst: 29.10.2004, 13:51
von pampl
include("$seite".".php4");

Das ist mein include befehl in der index.php

Verfasst: 29.10.2004, 16:03
von Caterham
Wie kommt das
polyphone_klingeltoene.php4/Neuheiten/1005,1.php4 zustande???

Wenn du polyphone_klingeltoene.php4/Neuheiten/1005,1.html aufrufst, greift die Regel von Post #2 nicht, sondern die General-Regel RewriteRule ^(.*)\.html$ index.php4?seite=$1. Lass' dir durch ein Script die Variable seite einmal ausgeben; experimentiere ein wenig.
das ist das, was ausgegeben wird, wenn ich polyphone_klingeltoene/Neuheiten/1005-1.html aufrufe.
Das kann so nicht sein. Mit deiner URI wird in die General-Regel gesprungen, da du ein Minus statt Komma zw. den Zahlen notierst. Die Variable Seite hat dann folgenden Wert: polyphone_klingeltoene/Neuheiten/1005-1.html
Du includest dann also polyphone_klingeltoene/Neuheiten/1005-1.html.php4.

Aus der Fehlermeldung gelesen, hat die Variable "Seite" diesen Wert: polyphone_klingeltoene.php4/Neuheiten/1005,1

--> .php4 hinter klingeltoene kann so nicht dahinkommen; .html am Ende fehlt.




Solltest du wieder erwarten polyphone_klingeltoene/Neuheiten/1005,1.html - also mit Koma statt Minus aufgerufen haben, hat die Variable seite den Wert von polyphone_klingeltoene_list. Es wird also polyphone_klingeltoene_list.php included. Davon taucht aber in der Fehlermeldung rein gar nichts auf.

Gruß
Robert

Verfasst: 30.10.2004, 02:04
von pampl
Mit dieser htaccess klappts nun endlich:

RewriteEngine on
RewriteRule ^polyphone-klingeltoene/(.*),(.*),(.*)\.html$ https://www.xxx.de/index.php4?seite=pol ... at=$2&p=$3 [L]
RewriteRule ^(.*)\.html$ /index.php4?seite=$1

Problem zum Teil, dass ich eine Datei polyphone_klingeltoene.php4 auf dem Server hatte :roll:



Jetzt wo es funktioniert habe ich aber ein neues Problem:
Die Links in der index.php4 zeigen jetzt alle auf polyphone-klingeltoene/datei.html statt auf datei.html, da die index.php4 sozusagen glaubt sie würde sich im ordner "polyphone-klingeltoene" befinden.

Kann man dieses Problem irgendwie lösen ohne alle Links zu absoluten Links zu ändern?

Verfasst: 30.10.2004, 17:08
von Caterham
Die Links müssen umgestellt werden, da der Browser denkt, er befindet sich im Verzeichnis polyphone-klingeltoene.

Von daher musst du notieren

Code: Alles auswählen

../datei.html oder
/datei.html oder
http://www.xxx.de/datei.html
Gruß
Robert

Verfasst: 30.10.2004, 21:02
von pampl
danke, klappt.

Verfasst: 31.10.2004, 12:48
von whyte
fehlt da net noch das RewriteBase / ???

Verfasst: 31.10.2004, 15:48
von Caterham
im obersten Verzeichniss muss es nicht unbedingt angegeben werden