Eine von 2 Bedingungen (Rechner ODER Name/Passwort) muss stimmen:
Beispiel:
Dateien in einem Verzeichnis sollen Nutzern auf Rechnern der TU Chemnitz sofort zugreifbar sein.
Nutzer anderer Rechner müssen sich als URZ-Nutzer authentifizieren (Nutzerkennzeichen + Passwort).
Die .htaccess-Datei im Verzeichnis enthält:
Satisfy any AuthName "URZ" AuthType Basic AuthDBMUserFile /www/auth/urzpasswd.dbm Require valid-user Order Deny,Allow Deny from all Allow from .tu-chemnitz.de
Beide Bedingungen (Rechner UND Name/Passwort) müssen stimmen:
Beispiel:
Dateien in einem Verzeichnis sollen nur von authentifizierten URZ-Nutzern (Nutzerkennzeichen + Passwort) von Rechnern aus Deutschland und Österreich zugreifbar sein: Die .htaccess-Datei im Verzeichnis enthält:
AuthName "URZ" AuthType Basic AuthDBMUserFile /www/auth/urzpasswd.dbm Require valid-user Order Deny,Allow Deny from all Allow from .de .at
„Wenn mein User von IP xx.yy.zz.* kommt (z. B. aus dem firmeneigenen Netz), dann soll er ohne irgendwelche Abfragen zugreifen dürfen; wenn er aber von einer anderen IP-Adresse aus zugreift, dann soll er sich mit Benutzerkennung und Passwort gegenüber der mit .htaccess definierten Benutzerliste ausweisen müssen.“
Im Artikel wurde der Fall beschrieben, daß nur die Kombination aus IP-Adresse, Benutzerkennung und Passwort den Zugriff ermöglichen sollen (satisfy=all - alle Anforderungen müssen erfüllt sein).
Alternativ gibt es auch die Möglichkeit satisfy=any - mindestens eine der Anforderungen muß erfüllt sein. Das bewirkt dann genau den hier gewünschten Effekt.
Fehlermeldung 'Satisfy not allowed here' (oder 'order not…' in /var/log/apache2/error.log Das liegt daran, dass in der vi /etc/apache2/sites-available/default die Option 'AllowOverride' falsch gesetzt ist.
AllowOverride Limit FileInfo AuthConfig (AuthConfig ist das entscheidende) bringt Abhilfe…
Primaer geht es um das Problem, dass die .htaccess nicht verwendet wird (Hierzu hab ich das Tutorial „Versuch: FAQ, mögliche Fehlerquellen und Fehlermeldungen beim Gebrauch von mod_rewrite, Punkt 2“ schon durchgefuehrt, leider ohne Erfolg.)
„AllowOverride [FileInfo]“ wurde zu 'apache2/sites_available/$SEITE' hinzugefuegt.
Zugriffsdateien im Verzeichnis werden nicht ausgewertet.
Zugriffsdateien im Verzeichnis werden ausgewertet und alle Features sind erlaubt.
Außerdem existieren noch die - seltener gebrauchten Einschränkungen:
Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für die User/Gruppenauthentifizierung sind erlaubt.
Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für die Domain/Rechner-Zugriffssteuerung sind erlaubt.
Zugriffsdateien im Verzeichnis werden ausgewertet. Nur Direktiven für Optionen sind erlaubt.
Die letztgenannten Angaben sind auch kombinierbar, etwa in der Form
AllowOverride AuthConfig Limit
In der 'httpd.conf' hatte ich die Directory-Rules auch schon, auch ohne Erfolg.
Wo liegt der Fehler?
Hi.
---
/root # cat /etc/apache2/httpd.conf
# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
---
so schaut der spass aus, mehr steht nich drin, da ich alles ueber die available sites definiert hab.
das sollte auch die frage beantworten, ob noch andere dateien die eventl. die konfig ueberschreiben, eingebunden werden.
zufaellig ne ahnung, ob die httpd.conf ueber den site-configs steht?
hier noch ein auszug aus '/etc/apache2/sites-available/default' (die anderen seiten wurden daraus erstellt)
—
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
REWRITE engline Apache2:
http://linuxwiki.de/Apache/RewriteEngine
Default Redirect ausschalten:
I want to change the default apache2 document root to /var/www instead of /var/www/apache2-default.
I have edited /etc/apache2/sites-available/default to comment out the redirect. As well I renamed the link /etc/apache2/sites-enabled/000-default to default and restarted apache2, but I am still always directed to http://server/apache2-default.
I have created a file /var/www/index.html which I can ready at http://server/index.html, but not if I try to go to http://server.
Below is the default file. The only change I've made is to comment out RedirectMatch line.
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
How do I set up Apache to allow access to certain documents only if a site is either a local site or the user supplies a password and username?
Use the Satisfy directive, in particular the Satisfy Any directive, to require that only one of the access restrictions be met.
For example, adding the following configuration to a .htaccess or server configuration file would restrict access to people who either are accessing the site from a host under domain.com or who can supply a valid username and password:
Deny from all Allow from .domain.com AuthType Basic AuthUserFile /usr/local/apache/conf/htpasswd.users AuthName "special directory" Require valid-user Satisfy any
See the user authentication question and the mod_access module for details on how the above directives work.
Dont forget the „ “ in AuthName or us a singe word without spaces in httpd.conf it must be configed that the .htaccess can be used: AllowOverride AuthConfig (or All)
Example:
Allow from 10.1.0.0/255.255.0.0
A network a.b.c.d, and a netmask w.x.y.z. For more fine-grained subnet restriction.
A network/nnn CIDR specification
The Order directive controls the default access state and the order in which Allow and Deny directives are evaluated. Ordering is one of
The Deny directives are evaluated before the Allow directives. Access is allowed by default. Any client which does not match a Deny directive or does match an Allow directive will be allowed access to the server.
The Allow directives are evaluated before the Deny directives. Access is denied by default. Any client which does not match an Allow directive or does match a Deny directive will be denied access to the server.
Only those hosts which appear on the Allow list and do not appear on the Deny list are granted access. This ordering has the same effect as Order Allow,Deny and is deprecated in favor of that configuration.
Noch ein Beispiel: Eine fremde Website bindet Bilder aus einem bestimmten Verzeichnis von Ihrer Website ein, und Sie möchten das verhindern, weil Sie nicht gefragt wurden und deshalb nicht bereit sind für den entstehenden zusätzlichen Traffic zu zahlen. Jetzt können Sie z.B. folgende .htaccess-Datei zum Einsatz bringen:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://.*mydomain\.de/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://.*mydomain\.de*$ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule ^(.*)jpg$ http://www.mydomain.de/images/smile.jpg [L,R]
Diese Datei bewirkt, daß alle jpg-Dateien, die in eine fremde Seite eingebunden sind (also einen HTTP-Referer ungleich der eigenen Domain haben), durch die Datei smile.jpg ersetzt werden. Wenn kein HTTP-Referer übergeben wird, was z.B. bei Besuchern der Fall sein kann, die hinter einem Firewall sitzen, wird das Originalbild geliefert. Eine genaue Beschreibung aller Möglichkeiten von mod_rewrite findet sich hier (auf Englisch).