0

I would like keep restrictions on admin folder of my project, for that I've made changes for virtual host configuration as follows

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/project_root/application/admin>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    deny from all
</Directory>
<Directory /var/www/project_root/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    allow from all
</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

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>

Even though I'm able to access admin pages, what might be the reason ? Currently I'm testing this in my local system.

2 Answers 2

0

Probably the problem is that you have defined the <Directory> for project root after the one for admin directory. This may overwrite your rules above.

Try moving the <Directory> of admin directory lower in the file. Like this:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/project_root/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>
<Directory /var/www/project_root/application/admin>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    deny from all
</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

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>

Regards,

m.a.sharpasand.com

6
  • I've already tried above as you suggested,it didn't worked for me.
    – Mahesh.D
    Feb 26, 2013 at 12:05
  • Your directive doesn't have any problems. I have checked them with my own Apache and they work. Are you sure you have restarted your server after you changed the file. And in which file exactly are you making the changes, in httpd.conf itself or some of the included files?
    – Sheric
    Feb 26, 2013 at 12:25
  • I've restarted the Apache after the change, I've created a file called project_root in /etc/apache2/sites-available/ ,there I'm making changes for creating vhost.
    – Mahesh.D
    Feb 26, 2013 at 12:38
  • Well, you have probably run the command, a2ensie. However recheck the file in sites-enabled folder and see whether every thing is moved properly in that folder.
    – Sheric
    Feb 26, 2013 at 12:49
  • I've checked Vhost configuration, its working fine without restrictions,I've followed steps in this site
    – Mahesh.D
    Feb 26, 2013 at 13:07
0

I have 2 assumptions:

Change

Order deny,allow
deny from all

to

Order allow,deny
deny from all

Or you might want to switch from directory to location, but this kind of another functionality.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .