Apache - mod_rewrite - Ordner vortäuschen

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

Apache - mod_rewrite - Ordner vortäuschen

Postby alffrom » 18. October 2008 20:49

Hallo,

ich habe einen V-Server (SuseLinux10.0, Confixx 3.3) und habe darauf jetzt ein Projekt laufen, welches ich für Suchmaschinen etc. optimieren will. Also soll aus
http://test.de/startseite.php?action=4
das werden:
http://test.de/startseite/4/
Dies habe ich mit mod_rewrite innerhalb der .htaccess geregelt:

Code: Select all
RewriteEngine ON
RewriteRule ^([a-z]+)/([0-9]+)$ $1.php?action=$2 


Leider kommt dort immer ein 403 Fehler, wenn ich die .htaccess allerdings wieder lösche, geht alles super.

Weiß jemand Rat?
Ist wichtig ;)

Greetz
alffrom
Hallo? Was willst du denn von mir? Finger weg!
User avatar
alffrom
 
Posts: 43
Joined: 11. October 2006 19:50

Postby Wiedmann » 18. October 2008 21:16

In der URI ist ein Slash am Ende, in der Rule nicht.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby alffrom » 19. October 2008 14:41

Hm, wie müsste es denn sonst sein? Bin bei Apache nicht wirklich ein Pro :D
Hallo? Was willst du denn von mir? Finger weg!
User avatar
alffrom
 
Posts: 43
Joined: 11. October 2006 19:50

Postby Xardas der Dunkle » 19. October 2008 15:30

Hm, wie müsste es denn sonst sein? Bin bei Apache nicht wirklich ein Pro Very Happy

Das hat nun nicht wirklich was mit dem Apache zu tun, sondern mit dem Aufbau des Regulären Ausdrucks ...

Das $ ist nämlich der "Platzhalter" für das Ende eines Strings. D.h. deine Regel springt nur an, wenn kein Slash am Ende steht.

Probiers mal mit dieser Regel
Code: Select all
RewriteEngine ON
RewriteRule ^([a-z]+)/([0-9]+)/?$ $1.php?action=$2

bin mir jetzt aber nicht sicher ob das bei der von mod_rewrite verwendeten Library her so funktioniert, falls nicht versuch es so:
Code: Select all
RewriteEngine ON
RewriteRule ^([a-z]+)/([0-9]+)$ $1.php?action=$2
RewriteRule ^([a-z]+)/([0-9]+)/$ $1.php?action=$2
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby alffrom » 19. October 2008 18:06

Hallo,

danke. Scheint aber alles nichts zu bewirken. Noch Tipps? Es bleibt bei der Fehlermeldung. (403). Ich kanns nicht sofort testen, da mein Server bald neuinstalliert wird und ich Backup's von allem mache, aber Hilfe ist trotzdem erwünscht :D
Hallo? Was willst du denn von mir? Finger weg!
User avatar
alffrom
 
Posts: 43
Joined: 11. October 2006 19:50

Postby Xardas der Dunkle » 19. October 2008 18:24

Sind mod_rewrite und .htaccess Dateien aktiviert?
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby alffrom » 23. October 2008 21:13

Hallo,

Habe den Code von deeg (aus dem united-hoster Forum) in der confixx_vhost.conf eingefügt, nun geht's! Apache findet das Modul zwar nicht, Gott weiß wieso, aber Confixx macht's nun ;D Supi! Danke euch.

Code: Select all
Options +FollowSymLinks       
AllowOverride None


Nun aber noch zwei Fragen: Die .htaccess sieht im Moment so aus
Code: Select all
RewriteEngine ON
RewriteRule start/$ startseite.php?action=$1
RewriteRule request/$ form_request.php?fehler=$1
RewriteRule book/$ book.php?id=$1
RewriteRule download/$ download.php?id=$1


Ich will aber noch das halt nach z.B. book/ noch die Variable $1 ausgelesen wird, also z.B. book/1/ . Wie stell ich das an? Und außerdem soll's noch ohne / am Ende aufrufbar sein, aber geht das anders als alles nochmal ohne / zu machen?

Greetz
alf
Hallo? Was willst du denn von mir? Finger weg!
User avatar
alffrom
 
Posts: 43
Joined: 11. October 2006 19:50


Return to Apache

Who is online

Users browsing this forum: No registered users and 242 guests