Apache2 directory-direktive

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • hi,

    ich hab ein problem mit einer direktive, die auf /var/www - dem documentroot wirkt, sieht so aus:

    Apache Configuration
    RewriteEngine On
    RewriteRule ^/users - [L]
    RewriteCond users/%{REQUEST_URI} -d
    RewriteRule ^/(([a-z0-9]{4,20})(/.*)?)$ /users/$1/ [L]
    RewriteRule ^([a-z0-9]{4,20})$ /users/$1/
    RewriteRule (.+) /users/$1


    ..was bewirken soll, dass anfragen wie server.com/einstring auf server.com/user/einstring umgeschrieben werden. der string hat die bedingung, a-z0-9 zu sein, mit einer länge von 4-20 zeichen - was auch prima funktioniert.
    nur dummerweise funzt eine bestimmte sache nicht mehr; nämlich der zugriff auf documentroot selbst. soll heißen:

    server.com/einstring -> server.com/users/einstring - geht
    server.com/einstring/ -> server.com/users/einstring/ - geht
    server.com/einstring/einedate -> server.com/users/einstring/einedatei - geht

    das ergebnis sieht dann immer so aus, dass /users/ nicht sichbar ist, sondern die adresszeile immernoch server.com/einstring zeigt - ohne das /users/ halt.
    aber das problem ist ja nun, dass die simple anfrage server.com - eben auf den documentroot ein 403 forbidden liefert, anstatt die seite normal anzuzeigen.


    kann mir da jemand weiterhelfen?

    ciao

  • Ich kenn mich ja mit den Apache RewriteRules nicht aus, aber wenn du die eine RewriteCond hast, kannst du da nicht einfach eine zweite dazustellen, so auf die Art wie: (Pseudocode mangels nötiger Syntaxkenntnisse)

    Code
    RewriteCond %{REQUEST_URI} != ""


    So dass die Regel beim Aufruf ohne was dahinter einfach nicht ausgeführt wird? Vielleicht vergess ich auch was oder hab grundsätzlich keine Ahnung :-§

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • hi,


    danke für deine bemühungen. ich habe nun nach längerem kopfzerbrechen das ganze umgeschrieben, nun funktioniert es, wie gewünscht...

    Apache Configuration
    RewriteEngine On
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule . - [L]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
    RewriteRule . - [L]
    RewriteCond %{DOCUMENT_ROOT}/users/%{REQUEST_URI} -d
    RewriteRule ^(.+)$ /users/$1/ [L]
    RewriteCond %{DOCUMENT_ROOT}/users/%{REQUEST_URI} -f
    RewriteRule ^(.+)$ /users/$1 [L]


    ciao

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!