# Zugriffsbeschränkung via Rewrite auf eine CGI-Datei (Gitweb)



## ping (20. Dezember 2012)

Guten Abend

Mich verfolgt seit längerer Zeit ein Problem, dass offenbar nicht so einfach gelöst werden kann wie gedacht:
Dabei geht es es um eine einzelne CGI-Datei, sprich den ganzen Programmcode von GitWeb. Diese publiziere ich über einen VHost. Möchte das ganze noch per BasicAuth (LDAP) schützen.
Aktuell liest sich das wiefolgt:


```
<VirtualHost *:80>
        ServerName gitweb.ddd.ch
        ServerAlias www.gitweb.ddd.ch gitweb
        DocumentRoot "/usr/share/gitweb"

        <Location />
                require user admin
        </Location>

        <Location /gitweb.cgi/repo1.git>
                require user user1
        </Location>

        <Directory "/usr/share/gitweb">
                Options +FollowSymLinks +ExecCGI
                AddHandler cgi-script .cgi
                SetEnv  GITWEB_CONFIG   /etc/gitweb.conf
                SetEnv  HOME            /home/git
                RewriteEngine On
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^.* /gitweb.cgi/$0 [L,PT]

                AuthName "GitWeb"
                AuthType Basic
                AuthBasicProvider ldap
                AuthUserFile /dev/null
                AuthLDAPBindDN "cn=ldapchefffe,ou=Module,ou=inf,,dc=ddd,dc=de"
                AuthLDAPURL "ldaps://192.168.1.1/ou=1,dc=ddd,dc=de?sAMAccountName?sub?(objectClass=*)"
                AuthLDAPBindPassword "xxxxxxxx"
        </Directory>

        LogLevel debug
        ErrorLog /var/log/apache2/gitweb_error.log
        CustomLog /var/log/apache2/gitweb_access.log combined
        ServerSignature Off
</VirtualHost>
```

Durch meine RewriteRule wird die URL gitweb.ddd.ch/repo1.git zwar richtig umgeschrieben, leider aber funktioniert das nicht mit dem Location Tag im Apache. Sprich diese Zeile wird nie ausgeführt: "require user user1".

Jemand eine Idee? Oder schon einmal ein ähnliches Problem gelöst?

Freundliche Grüsse
Ping


----------



## erik s. (21. Dezember 2012)

Probier mal 

```
<Files /gitweb.cgi/repo1.git>
    Require user user1
</Files>
```

Gruß


----------



## ping (21. Dezember 2012)

Hallo erik

Danke erstmal für die Antwort.

Leider bisher keine Veränderung:
Auf */* funktioniert die BasicAuth.
Auf */gitweb.cgi/repo1.git* kommt die Seite ohne eine Nachfrage der Berrechtigung.


----------

