Ich verzweifle langsam und konnte hier im Forum zu dem Problem auch keine Lösung finden. Ich vermute auch, dass es an meiner Apache-Konfiguration liegen kann.
Problem: Ich habe folgende htaccess-Datei zusammengeschustert, die eine URL wie /1/2 zu index.php?arg1=1&arg2=2 umwandeln soll:
- Code: Alles auswählen
RewriteEngine On
RewriteRule ^([-0-9a-zA-Z_]+)$ index.php?ARG1=$1&%{QUERY_STRING}
RewriteCond %{REQUEST_URI} !^/bugtracker/?$
RewriteRule ^([-0-9a-zA-Z_]+)/$ index.php?ARG1=$1&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)$ index.php?ARG1=$1&ARG2=$2&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/$ index.php?ARG1=$1&ARG2=$2&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)$ index.php?ARG1=$1&ARG2=$2&ARG3=$3&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/$ index.php?ARG1=$1&ARG2=$2&ARG3=$3&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)$ index.php?ARG1=$1&ARG2=$2&ARG3=$3&ARG4=$4&%{QUERY_STRING}
RewriteRule ^([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/([-0-9a-zA-Z_]+)/$ index.php?ARG1=$1&ARG2=$2&ARG3=$3&ARG4=$4&%{QUERY_STRING}
Die htaccess-Datei liegt in einem Benutzerordner, sieht ungefähr so aus: http://domain/~benutzername/projektname/.htaccess
Wenn ich jetzt domain/~benutzername/projektname/ aufrufe, kommt die Startseite (index.php), alles korrekt! Aber, wenn ich jetzt domain/~benutzername/projektname/unterordner aufrufe, bekomme ich einen 404er zurück, Seite nicht gefunden wobei er doch eigentlich wieder die index.php aufrufen sollte mit den GET-Paramtetern
Wieso?
Kann das auch an der Apache-Konfiguration liegen, dass das Redirecten auf z.B. index.php?ARG1=$1&%{QUERY_STRING} nicht funktionieren kann, weil das "aktuelle Verzeichnis" nicht korrekt ist?
Achja, wenn ich redirecten lasse auf z.B.
- Code: Alles auswählen
RewriteRule ^([-0-9a-zA-Z_]+)$ /index.php?ARG1=$1&%{QUERY_STRING}
also mit Slash vor dem index.php, dann komme ich tatsächlich auf eine index.php raus, aber auf die in http://domain/ ... macht ja auch Sinn
Oder kennt sich jemand mit dem Apache aus, und dessen Config?
Meine Config sagt für diesen Ordner folgendes aus:
- Code: Alles auswählen
<Directory "/var/services/homes/*/www*">
Options FollowSymLinks Indexes
ErrorDocument 403 /webdefault/sample.php?status=403&subweb=www
ErrorDocument 404 /webdefault/sample.php?status=404&subweb=www
ErrorDocument 500 /webdefault/sample.php?status=500&subweb=www
AllowOverride All
Allow from all
Order Allow,Deny
DirectoryIndex index.html index.cgi index.php
</Directory>
Habe ich da einen Fehler gemacht oder kann man hier etwas günstiges für mein Problem einstellen??
Ich hoffe natürlich auf Hilfe hier für Euch und wär dankbar
schönen Abend!
Chris
--------------- EDIT ---------------
Ich habe eben RewriteBase entdeckt. Damit kann ich es htaccess ja mitteilen.
Z.B. in meinem Fall:
- Code: Alles auswählen
RewriteBase /~benutzername/meinprojekt/
Das funktioniert
Was ich jetzt ärgentlich finde ist, dass ich das theoretisch bei keinem weiteren Projekt vergessen darf, anzupassen.
Ich betreibe einen eigenen Apache lokal bei mir zuhause und habe noch einen externen Provider für meine Homepage wenn sie live geht.
Auf dem Liveserver brauche ich aber kein RewriteBase anzugeben, da reicht die htaccess im projektordner und ein Reqrite auf index.php, dann wird autmatisch auf die index.php im projektordner geleitet. Wieso klappt das bei mir lokal nicht? Ich hoffe jemand kennt sich da aus, ich schiebe die "Schuld" mal hauptsächlich auf mich, klar
Hat jemand eine Idee?
LG
Chris

