At 17:58 08.03.2003, news.php.net said:
--------------------[snip]--------------------
>I want to have the /php directory
>one directory above the /web root
>so it is not accessible from browser command line execution but
>will execute from a click on an
>html page.  CGI-PHP is installed
>but I need to know the .htaccess
>contents for the /cgi/php directory

Of course this is possible. You just cannot directly run any PHP script by
URL if it's located outside the web root, but you could easily use stub
files running that part of the application you wish to use.

I assume you have some libraries that you'd like to include in your stub files:

-- stub.php
<?php
require_once('../php/library1.php');
?>

So there's no real need for an .htaccess-based blocker.

However here's what you need in .htaccess )line numbers only for
explanation below):

1 AuthName "The name of your realm"
2 AuthType Basic
3 AuthUserFile /etc/httpd/.htpasswd
4 AuthGroupFile /etc/httpd/.htgroup
5 Require group authorized_users
6 Order deny,allow
7 Deny from all
8 Allow from 10.10.10.0/24
9 Allow from ##.##.##.##
10 Satisfy any

Explanation:
1 - This is the text that will appear on the authentication dialog at the
clients side.
2 - There are others (like NTLM) but I don't have any experience using
them. Take care that "Basic" doesn't provide any encryption of transmitted
UserID/Passwords; it just Base64-encodes it.
3 - Where the password file is located. It may be anywhere, even outside
the web root, as long as it is readable by Apache. You create and maintain
the .htpasswd file using the htpasswd command line utility.
4 - Optional; contains user groups. Maintained by text editor. Format:
    group: user user user
    group: user user user
5 - Names of user groups that may access the ddirectory. You may as well use
    Require user user-id user-id
    if you don't support groups.
6 - Order of ACL check (http://httpd.apache.org/docs/mod/mod_access.html#order)
7 - Deny all hosts and users (checked first, see 6)
8 - Allow from the internal network (example, not required)
9 - Allow from any other IP or subnet (example, not required)
10 - http://httpd.apache.org/docs/mod/core.html#satisfy
    Allow access if _any_ of the above restrictions is met. If you specify
       Satisfy all
    the above example would never allow access since no host can be on 
    different addresses...

Note that "AllowOverride AuthConfig" must be set in the server or virtual
host definition if authentication is to be used via .htaccess.

The authentication directives can be used in the server config at the
<Directory> level, or in the .htaccess file.

Formore info on Apache directives read
http://httpd.apache.org/docs/mod/directives.html.

HTH,

-- 
   >O     Ernest E. Vogelsinger
   (\)    ICQ #13394035
    ^     http://www.vogelsinger.at/



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to