Exclude a sub directory in a protected directory
.htaccess files are extremely useful in many cases for users who either do not have root permissions or for users who simply aren't comfortable in making changes in their web server's configuration file. Trying to debug .htaccess not working isn't always the easiest thing to do, however, hopefully by checking the discuss below mentioned about htaccess, , , , .htaccess common problems as well as the troubleshooting tips, you'll have a better grasp on what you may have to modify to get your .htaccess file running smoothly.Problem :I need to exclude protection on one of the folder inside a protected directory with .htaccess
I put .htaccess in here:
/home/mysite/public_html/new/administrator/.htaccess
The directory need to be exclude from protection:
/home/mysite/public_html/new/administrator/components/com_phocagallery/
My .htaccess file :
AuthUserFile "/home/mysite/.htpasswds/public_html/new/administrator/passwd"
AuthType Basic
AuthName "admin"
require valid-user
SetEnvIf Request_URI "(/components/com_phocagallery/)$" allow
Order allow,deny
Allow from env=allow
Satisfy any
I tried but not working on my purpose. I suspect my path to the excluded directory may have some mistakes.
As far as I know, this is not possible using plain old .htaccess directory protection. Maybe you can set up a web based authentication and check for each users rights before accessing directories.
The Apache HTTP server also has a lot of mod_auth*-modules, which may help you. See also: http://httpd.apache.org/docs/2.0/howto/auth.html
This is a very old question, but I see an error in the following line:
SetEnvIf Request_URI "(/components/com_phocagallery/)$" allow
The leading slash should not be there:
SetEnvIf Request_URI "(components/com_phocagallery/)$" allow
The way you have it is relative to the root of the OS instead of relative to the directory the .htaccess file is in.
Rather than setting environment variables, perhaps you should consider creating a separate set of directives specific to the subdirectory - for example:
.htaccess file:
AuthUserFile "/home/mysite/.htpasswds/public_html/new/administrator/passwd"
AuthType Basic
AuthName "admin"
require valid-user
Satisfy all
public_subdirectory/.htaccess file:
# All access controls and authentication are disabled
# in this directory
Satisfy Any
Allow from all
Directives based upon Apache directives described in How to accomplish “AuthType None” in Apache 2.2 at StackOverflow.
Comments
Post a Comment