mod_rewrite Problem

  • Hallo erst einmal! (von dem NEUEN ;-) )



    Ich habe folgendes Problem:


    Ich habe in meiner phpinfo stehen das bei
    Loaded Modules: core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_include mod_mime mod_python mod_negotiation mod_perl mod_php5 mod_rewrite mod_setenvif mod_ssl mod_status mod_suexec


    D.h. ja dann das mod_rewrite "gestartet" ist.


    Habe jetzt mal in der .htaccess "RewriteBase /" hin zu gefügt.
    Aber läuft immer noch nicht:-(


    Hier mal meine .htaccess:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^profil/(.*)/$ index.php?d=profil&s=$1
    RewriteRule ^profil/(.*)$ index.php?d=profil&s=$1
    RewriteRule ^login/(.*)/(.*)/$ index.php?d=login&s=$1&u=$2
    RewriteRule ^login/(.*)/(.*)$ index.php?d=login&s=$1&u=$2
    RewriteRule ^login/(.*)/$ index.php?d=login&s=$1
    RewriteRule ^login/(.*)$ index.php?d=login&s=$1
    RewriteRule ^fotoalbum/(.*)/$ index.php?d=fotoalbum&a=$1
    RewriteRule ^fotoalbum/(.*)$ index.php?d=fotoalbum&a=$1
    RewriteRule ^alben/(.*)/$ index.php?d=alben&a=$1
    RewriteRule ^alben/(.*)$ index.php?d=alben&a=$1
    RewriteRule ^gruppenmitglieder/(.*)/$ index.php?d=gruppenmitglieder&a=$1
    RewriteRule ^gruppenmitglieder/(.*)$ index.php?d=gruppenmitglieder&a=$1
    RewriteRule ^freunde/(.*)/$ index.php?d=freunde&a=$1
    RewriteRule ^freunde/(.*)$ index.php?d=freunde&a=$1
    RewriteRule ^gaestebuch/(.*)/$ index.php?d=gaestebuch&a=$1
    RewriteRule ^gaestebuch/(.*)$ index.php?d=gaestebuch&a=$1
    RewriteRule ^forum/(.*)/(.*)/$ index.php?d=forum&s=$1&u=$2
    RewriteRule ^forum/(.*)/(.*)$ index.php?d=forum&s=$1&u=$2
    RewriteRule ^gruppen/(.*)/(.*)/$ index.php?d=gruppen&s=$1&u=$2
    RewriteRule ^gruppen/(.*)/(.*)$ index.php?d=gruppen&s=$1&u=$2
    RewriteRule ^blog/(.*)/rss/$ rss.php?u=$1
    RewriteRule ^blog/(.*)/rss$ rss.php?u=$1
    RewriteRule ^blog/(.*)/(.*)/$ index.php?d=blog&u=$1&e=$2
    RewriteRule ^blog/(.*)/(.*)$ index.php?d=blog&u=$1&e=$2
    RewriteRule ^blog/(.*)/$ index.php?d=blog&u=$1
    RewriteRule ^blog/(.*)$ index.php?d=blog&u=$1
    RewriteRule ^d/(.*)/$ index.php?d=$1
    RewriteRule ^d/(.*)$ index.php?d=$1


    Kann das sein das da hinter die RewriteBase noch was muss?



    mfg
    Thorsten

  • Also ich hab deine Sachen jetzt mal genau so bei mir eingetragen und es klappt ohne Probleme.


    Funktioniert bei dir gar kein Aufruf ? Oder nur manche nicht ?

    "Dieses Business ist binär. Du bist eine Eins oder eine Null, lebendig oder tot. Es gibt keinen zweiten Sieger." - Gary Winston (StartUp)

  • Wenn die gepostet htaccess auf dem Server liegt ist die Seite nicht zu erreichen.


    Jetzt läuft die Seite ja auch immo ohne htaccess.



    mfg
    Thorsten

  • Zitat

    Wenn die gepostet htaccess auf dem Server liegt ist die Seite nicht zu erreichen.


    Was heisst nicht zu erreichen? Welcher ErrorCode?


    gruss, Karsten

    »Man sollte alles so einfach wie möglich sehen - aber auch nicht einfacher.«
    -Albert E.

  • So bald ich die htaccess auf den Server schiebe, kommt eine 403.


    Kann das sein das dass mod_rewrite modul geladen ist, ein rewriting von Server nicht freigegeben ist?


    Oder kann es sein das das Script nicht für PHP5 ist.
    Also zumindest das die mod_rewrite funktion in dem Script nicht für PHP5 geeignet ist?



    mfg
    Thorsten

  • Hi Thorsten,
    mod_rewrite arbeitet unabhängig vom PHP.
    Error 403 heisst eigentlich "forbidden".
    Es könnte also sein, dass in der http-Konfig etwas verboten bzw noch nicht explizit erlaubt worden ist.
    Hast du Zugriff auf das Apache-Errorlog deines Webserver?
    Da steht normalerweise schon viel drin.
    z.B.

    Zitat

    Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/htdocs/


    Dann musst du in der .htaccess ein

    Code
    1. Options +FollowSymlinks

    einfügen. Das funktioniert aber nur, wenn du in der .htaccess die Direktive Options überschreiben darfst. Wenn nicht kommt beim Webseitenaufruf ein Error 500 (Internal Server Error).


    Im Errorlog findest du dann ein

    Zitat

    /var/www/htdocs/.htaccess: Options not allowed here


    Es muss dann FollowSymlinks oder SymLinksIfOwnerMatch in der http.conf des Servers freigeschaltet werden.


    usw.....
    Alles nicht so einfach. ;-)


    gruss, Karsten

    »Man sollte alles so einfach wie möglich sehen - aber auch nicht einfacher.«
    -Albert E.

  • Hallo habe die htacess jetzt mal so ergänzt:
    RewriteEngine on
    Options +FollowSymlinks
    RewriteRule ^profil/(.*)/$ index.php?d=profil&s=$1
    RewriteRule ^profil/(.*)$ index.php?d=profil&s=$1
    RewriteRule ^login/(.*)/(.*)/$ index.php?d=login&s=$1&u=$2
    RewriteRule ^login/(.*)/(.*)$ index.php?d=login&s=$1&u=$2
    RewriteRule ^login/(.*)/$ index.php?d=login&s=$1
    RewriteRule ^login/(.*)$ index.php?d=login&s=$1
    RewriteRule ^fotoalbum/(.*)/$ index.php?d=fotoalbum&a=$1
    RewriteRule ^fotoalbum/(.*)$ index.php?d=fotoalbum&a=$1
    RewriteRule ^alben/(.*)/$ index.php?d=alben&a=$1
    RewriteRule ^alben/(.*)$ index.php?d=alben&a=$1
    RewriteRule ^gruppenmitglieder/(.*)/$ index.php?d=gruppenmitglieder&a=$1
    RewriteRule ^gruppenmitglieder/(.*)$ index.php?d=gruppenmitglieder&a=$1
    RewriteRule ^freunde/(.*)/$ index.php?d=freunde&a=$1
    RewriteRule ^freunde/(.*)$ index.php?d=freunde&a=$1
    RewriteRule ^gaestebuch/(.*)/$ index.php?d=gaestebuch&a=$1
    RewriteRule ^gaestebuch/(.*)$ index.php?d=gaestebuch&a=$1
    RewriteRule ^forum/(.*)/(.*)/$ index.php?d=forum&s=$1&u=$2
    RewriteRule ^forum/(.*)/(.*)$ index.php?d=forum&s=$1&u=$2
    RewriteRule ^gruppen/(.*)/(.*)/$ index.php?d=gruppen&s=$1&u=$2
    RewriteRule ^gruppen/(.*)/(.*)$ index.php?d=gruppen&s=$1&u=$2
    RewriteRule ^blog/(.*)/rss/$ rss.php?u=$1
    RewriteRule ^blog/(.*)/rss$ rss.php?u=$1
    RewriteRule ^blog/(.*)/(.*)/$ index.php?d=blog&u=$1&e=$2
    RewriteRule ^blog/(.*)/(.*)$ index.php?d=blog&u=$1&e=$2
    RewriteRule ^blog/(.*)/$ index.php?d=blog&u=$1
    RewriteRule ^blog/(.*)$ index.php?d=blog&u=$1
    RewriteRule ^d/(.*)/$ index.php?d=$1
    RewriteRule ^d/(.*)$ index.php?d=$1


    Jetzt kommt wie du schon vermutet hattest eine 500 fehlerseite.



    mfg
    Thorsten

  • Mach die Zeile Options +FollowSymlinks mal ganz oben als erstes (vor RewriteEngine on) in die .htaccess rein
    Ist zwar nur Kosmetik, aber vieleicht tut sich was.


    Du hast dann aber wirklich das Problem, dass der Webserver vorgibt, welche Options in deinem Webroot gelten.


    gruss, Karsten

    »Man sollte alles so einfach wie möglich sehen - aber auch nicht einfacher.«
    -Albert E.