2009-08-08 2 views
12

Как вы можете разрешить только localhost в Apache2?Разрешить только localhost в 000-default Apache

Мои/и т.д./apache2/сайты с поддержкой/000-умолчанию

<VirtualHost *:80> 
     ServerAdmin [email protected] 

DocumentRoot /home/masi/Dropbox/a 
<Directory /> 
       Options FollowSymLinks 
       AllowOverride None 
     </Directory> 
     <Directory /home/masi/Dropbox/a/> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride None 
       Order allow,deny 
       deny from all        // Problem HERE! 
     allow from 127.0.0.1 
     </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> 

</VirtualHost> 

я просматриваю к http://localhost/index.php безуспешно. Я получаю Forbidden.

+2

Этот вопрос лучше подходит для http://serverfault.com. –

+0

Пожалуйста, переместите этот вопрос на serverfault, чтобы решить проблему. –

ответ

17

Включите свой запрет, запретите порядок (вы хотите сначала отказать всем, а затем разрешить localhost).

Изменение:

Order allow,deny 

To:

Order deny,allow 

(что поведение по умолчанию)

+0

Спасибо за ваш ответ! Это решает проблему. –

+2

Это правильно. Тем не менее, в моем случае (с использованием macos x Mountain Lion) мне также пришлось разрешить адрес localhost ipv6, то есть я добавил следующую добавочную строку: Allow from fe80 :: 1 – Alexander

+0

Начиная с Apache 2.4 вы можете просто написать [' Требовать local'] (https://httpd.apache.org/docs/current/mod/mod_authz_host.html) вместо этого –

1

Ответить на ответ Махи

Это файл, который работает меня. Вы можете иметь то, что хотите, вместо/var/www.

<VirtualHost *:80> 
     ServerAdmin [email protected] 

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

Проще. Посмотрите конфигурацию «/ usr/shre/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> 
Смежные вопросы