Admin-Bereich nicht zugänglich wegen "falscher" RewriteCond

Hallo,

nach einem Umzug des Oxid-Shops 4.3.2_27884 auf einen neuen Server habe ich leider Probleme mit der .htaccess im Verzeichnis /admin.
Das Verzeichnis /admin soll per .htaccess einen zusätzlichen Passwortschutz bekommen (was vor dem Serverumzug auch funktioniert hat).

Nach dem Umzug machen kommen nun aber scheinbar die Rewrite-Conditions aus dem Web-Root-Verzeichnis (also das ./web oder ./public_html bzw. entsprechend) dem in die Quere und bei Aufruf [I]http://www.meineDomain.de/admin[/I] sehe ich das “normale” Oxid-Template mit der Fehlemeldung “[I]Fehler. Die angeforderte Seite ‘admin/’ konnte nicht gefunden werden.[/I]” im Content-Bereich (in der Mitte).

~/web/admin/.htaccess enthält den Passwortschutz

AuthType Basic
AuthName "Shop-Admin"
AuthUserFile /var/www/clients/client1/web1/.htpasswd_admin
<limit GET PUT POST>
require valid-user
</limit>

die ~/web/.htaccess sieht so aus:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} oxseo\.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo\.php$ oxseo.php?mod_rewrite_module_is=on [L]

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(\.html|\/|\.jpg|\.css|\.pdf|\.doc|\.gif|\.png|\.js)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (\.html|\/)$ oxseo.php
</IfModule>

<FilesMatch "(EXCEPTION_LOG\.txt|\.log$|\.tpl$)">
order allow,deny
deny from all
</FilesMatch>

Options -Indexes
DirectoryIndex index.php index.html

die beiden

\/admin\/|

aus obiger .htaccess habe ich testweise natürlich schonmal entfernt, was aber nichts verändert hat.

der virtuelle Host des Apache sieht - aufs Wesentliche beschränkt - so aus:

<VirtualHost *:80>
    DocumentRoot /var/www/www.MeineDomain.de/web

    <Directory /var/www/www.MeineDomain.de/web>
        Options FollowSymLinks
        AllowOverride Indexes AuthConfig Limit
        Order allow,deny
        Allow from all
    </Directory>
    <Directory /var/www/clients/client1/web1/web>
        Options FollowSymLinks
        AllowOverride Indexes AuthConfig Limit
        Order allow,deny
        Allow from all
    </Directory>

    <Directory /var/www/www.MeineDomain.de/web>
        AllowOverride All
    </Directory>
    Options -Indexes +FollowSymLinks
</VirtualHost>

das physische User-Verzeichnis ist:
[I]/var/www/clients/client1/web1[/I]
bzw. das öffentliche Web-Verzeichnis:
[I]/var/www/clients/client1/web1/web
[/I]
während
[I]/var/www/www.MeineDomain.de[/I] ein Symlink von [I]/var/www/clients/client1/web
[/I] ist.

Wird die ~/web/admin/.htaccess entfernt, funktioniert alles einwandfrei, der Admin-Bereich zeigt den regulären Oxid-Login. Ist die ~/web/admin/.htaccess vorhanden, geht auch alles einwandfrei, nur eben der Admin-Bereich ist nicht mehr verfügbar.

Leider bin ich nun garnicht der mod_rewrite Experte :confused: … und hoffe hier kann mir jemand einen Tipp geben, ich komm mit all dem googlen und recherchieren einfach nicht weiter …

Tausend Dank schonmal vorab!

Hallo,

verstehe ich das richtig: Du ziehst auf einen anderen Server um. Danach versucht das Shop-Frontend eine Datei aus dem Admin aufzurufen und wird nicht fündig, gibt daher eine Fehlermeldung aus?

Gruß

[QUOTE=Marco Steinhaeuser;43305]Danach versucht das Shop-Frontend eine Datei aus dem Admin aufzurufen und wird nicht fündig, gibt daher eine Fehlermeldung aus?[/QUOTE]

nicht ganz.
Bei vorhandener .htacces im Verzeichnis und Aufruf der URL [I]http://www.meinDomain.de/admin[/I] erscheint diese Fehlermeldung:

Entferne ich die .htaccess aus dem Verzeichnis admin, erscheint das reguläre Login-Form des Admin-Backends.
Danke schonmal!

Nachtrag:
wird ein Verzeichnis ~/web/test erzeugt und dieses mit .htaccess auch passwortgeschützt, erscheint mit [I]http://www.meineDomain.de/test[/I] die gleiche Fehlermeldung.

Hallo Leute,
hat niemand eine Idee für das Problem?

Ich habe die Rewrite Conditions in der .htaccess überprüft
mod_rewrite ist auch aktiv, ist geprüft
bei [I]$this->sAdminSSLURL[/I] in der config.inc.php die Admin-URL auf NULL und auch die URL eingetragen …

alles ohne Ergebnis.
Hat jemand eine Idee?

Ich habe dasselbe Problem.
Der selbe htaccess/htpasswd Schutz funktioniert allerdings bei einem anderen Shop wunderbar, zudem funktioniert der htaccess Schutz bei mir lokal, allerdings nicht auf dem Server.

Hat jemand das Problem auch mal gehabt und inzwischen eine Lösung gefunden?
Es handelt sich hierbei um einen Shop der Version 4.1.6_22740, einem Linux/Debian System mit Apache 2.2

Der Passwortschutz funktioniert, wenn man den ganzen Shop damit schützen will. Allerdings eben nicht in einem Unterordner. Ich gehe daher davon aus, dass etwas mit den rewrite Rules nicht stimmt?
Allerdings müssten diese dann nicht auch lokal den selber Fehler verursachen?

Fehler gefunden.

Ich hatte ein


ErrorDocument 401 

in der Apacheconfig definiert. Das darf man bei einem htaccess Passwortschutz für ein Unterverzeichnis nicht. Interessanterweise ist es kein Problem, wenn der Passwortschutz für “root” als / gilt.