mod_rewrite

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

mod_rewrite

Postby mrmercury » 25. February 2011 13:02

Hi liebe Community,

wie ich im Google und über die SuFu herausgefunden habe, scheint das mod_rewrite zeugs einigen Leuten echt den Kopf zu zerbrechen...wie mir nun auch...

Ich versuche mal so detailiert wie möglich zu schildern...

Ausgangssituation:

httpd.conf erweitert um:

-LoadModule rewrite_module /usr/lib/apache2/mod_rewrite.so
(modul wird auch richtig geladen, zumindest steht in den LOG´s nichts und im phpinfo wird es in der Liste der geladenen Module angezeigt)

Code: Select all
<Directory />
    Options +FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
</Directory>


Code: Select all
<Directory "/srv/www/htdocs">
    Options +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>


in der htaccess hab ich folgende rules aufgestellt:

Code: Select all
RewriteEngine On
RewriteBase /
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]


(habe auch schon ohne das "RewriteBase /" versucht...)

nachdem ich alle möglichen Testfiles geschrieben, und alle nicht funktioniert haben habe ich schon an meinen Fähigkeiten gezweifelt und einfach ein fertiges .php File gezogen...damit gings allerdings auch nicht...

habe mir dieses rewrite.php File gebastelt von diesem Tutorial (http://www.webune.com/forums/how-to-tes ... d-t40.html)

Nunja, was soll ich sagen. Normalerweise müsste alles funktionieren, bei mir kommt aber folgende Meldung wenn ich auf "LINK2" klicken möchte:

[an error occurred while processing this directive] Der angeforderte URL konnte auf dem Server nicht gefunden werden. Der Link auf der verweisenden Seite scheint falsch oder nicht mehr aktuell zu sein. Bitte informieren Sie den Autor dieser Seite über den Fehler. [an error occurred while processing this directive]

P.S.: Als Webserver OS dient SuSe11....

Hat noch jemand irgendeine Ahnung woran es liegen könnte? Ich bin am Ende mit meinem Fachchinesisch :( ...

das phpInfo File kann man sich unter http://arpwise.dyndns.org/test.php ansehen... das File zum Testen der mod_rewrite unter http://arpwise.dyndns.org/rewrite.php

Vielen Dank schonmal!
mrmercury
 
Posts: 5
Joined: 25. February 2011 12:43

Re: mod_rewrite

Postby WilliL » 25. February 2011 14:01

ich denke
Code: Select all
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1
passt nicht, bin jedoch kein mod_rewrite experte..
2* "^" ?
würde
Code: Select all
RewriteRule ^link([/]*).html$ rewrite.php?link=$1
oder
RewriteRule ^link/([a-zA-Z]+).html$ rewrite.php?link=$1
versuchen
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: mod_rewrite

Postby mrmercury » 25. February 2011 14:30

doch doch, das passt auf jedenfall...wenn man in der htaccess syntaxfehler macht dann bekommt man ja sowieso nen Internal Server Error....
mrmercury
 
Posts: 5
Joined: 25. February 2011 12:43

Re: mod_rewrite

Postby mrmercury » 25. February 2011 14:46

hmm... hab nochmal in den Logs geschaut...

das sieht übel aus oder?

Directory index forbidden by Options directive: /srv/www/htdocs/

kann mir darunter aber nichts vorstellen??
mrmercury
 
Posts: 5
Joined: 25. February 2011 12:43

Re: mod_rewrite

Postby mrmercury » 25. February 2011 14:51

falscher Alarm... die Fehlermeldung deuted darauf hin weil keine index.html vorhanden ist... wenn ich eine reinmachen dann kommt die Meldung nicht mehr... also weiter mit der Fehlersuche :( ...
mrmercury
 
Posts: 5
Joined: 25. February 2011 12:43

Re: mod_rewrite

Postby WilliL » 25. February 2011 18:26

versuch mal die " SymLinksIfOwnerMatch" irgendwo mal gelesen soll rein

so beginnte meine .htacces und die meisten rules laufen, eine kriege ich nicht hin..
Code: Select all
Options -Indexes +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /


versuch mal die " SymLinksIfOwnerMatch" irgendwo mal gelesen soll rein

so beginnte meine .htacces und die meisten rules laufen, eine kriege ich nicht hin..
Code: Select all
Options -Indexes +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /


//edit
oder versuch mal
Code: Select all
RewriteRule ^link/(*.)$ rewrite.php?link=$1 [L]

und im php-script
$var= str_replace ( '.hml', '', $arg_var );
war bei mir der Fehler
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: mod_rewrite

Postby Nobbie » 26. February 2011 13:20

Mit einiger Sicherheit ist in httpd.conf die AllowOverride Klausel mit ungenügenden Zugriffsrechten spezifiziert. Für die Ausführung von mod_rewrite benötigt man mindestens "FileInfo" (oder einfach AllowOverride All).
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: mod_rewrite

Postby mrmercury » 28. February 2011 11:37

@nobbi,
bitte lies doch meinen Ausgangstext richtig durch, denn dann würdest du sehen das AllowOverride bereits auf ALL steht...

@WilliL
danke für den Hinweis, allerdings funktioniert es trotzdem nicht :( ...

Oh man, bin echt total am Verzweifeln :((
mrmercury
 
Posts: 5
Joined: 25. February 2011 12:43

Re: mod_rewrite

Postby WilliL » 28. February 2011 16:46

hast du vielleicht vhosts definiert?
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: mod_rewrite

Postby WilliL » 28. February 2011 18:06

Code: Select all
RewriteEngine On
RewriteBase /
RewriteRule ^link/(.*).html$ rewrite.php?link=$1 [L]
#
# geht im XAMPP 1-7-4 nicht (Standardeinstellung )
#RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]

die funktioniert!!

SORRY, mein Fehler, :oops:
beide Varianten funktionier, wenn auch unterschiedlich alle Dateien müssen dann im rootpfad liegen - der Sinn erschließt sich mir dann nicht wirlich :!:
- man muss dann die rewrite.php aufrufen (mit den notices leben) und dann die Links anklicken -
(meine Lesart war: es gibt einen odrner 'links' dessen htmlSeiten auf eine PHP Datei umgelenkt werden.
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1


Return to Apache

Who is online

Users browsing this forum: No registered users and 18 guests