Запрещено У вас нет прав доступа/доступа на этом сервере
Все, что я хотел сделать сегодня, это написать правило перенаправления для подпапки, например:
Вы вводите URL-адрес: example.com, и вы перенаправляетесь на example.com/subfolder
Такое простое желание. Я попытался найти решение в Интернете. Интернет сказал мне добавить файл .htaccess в корневой каталог htdocs с помощью:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]
Я сделал это. Но никакого успеха явно, они не сказали мне, что мне пришлось раскомментировать модуль в httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
Итак, я тоже это сделал. Нет успеха. Они не сказали мне, что мне нужно изменить мой httpd.conf, чтобы файл .htaccess был включен:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Снова нет успеха, потому что я получаю эту ошибку при вводе URL-адреса:
Запрещено У вас нет разрешения на доступ к этому серверу.
Теперь я застрял, и я не мог найти больше решений в Интернете. Я просто запускаю Apache 2.4 на своей машине с Windows 7 по частным причинам.
Ответы
Ответ 1
Нашел свое решение благодаря Ошибка с .htaccess и mod_rewrite
Для Apache 2.4 и во всех *.conf файлах (например, httpd-vhosts.conf, http.conf, httpd-autoindex.conf..etc) используйте
Require all granted
вместо
Order allow,deny
Allow from all
Директивы Order и Allow устарели в Apache 2.4.
Ответ 2
РАБОЧИЙ метод {если нет никакой проблемы, кроме конфигурации}
По умолчанию Appache не ограничивает доступ из ipv4. (общий внешний ip)
Что может быть ограничено конфигурациями в 'httpd.conf' (или 'apache2.conf' в зависимости от вашей конфигурации apache)
Решение:
Заменить все:
<Directory />
AllowOverride none
Require all denied
</Directory>
с
<Directory />
AllowOverride none
# Require all denied
</Directory>
поэтому удалив все ограничения, предоставляемые Apache
Замените Require local
на Require all granted
в каталоге C:/wamp/www/
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
# Require local
</Directory>
Ответ 3
Решение простое.
Если вы пытаетесь получить доступ к серверу с помощью локального IP-адреса, и вы получаете сообщение об ошибке, например, Запрещено У вас нет прав доступа/на этом сервере
Просто откройте файл httpd.conf(в моем случае C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf
)
Поиск
<Directory "D:/wamp/www/">
....
.....
</Directory>
Заменить
Разрешить с 127.0.0.1
к
Разрешить все
Сохраните изменения и перезапустите сервер.
Теперь вы можете получить доступ к своему серверу, используя свой IP-адрес
Ответ 4
Проблема заключается в файле https.conf!
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
Ошибка возникает, когда hash (#) удаляется или запутывается. Эти две строки должны отображаться, как показано выше.
Ответ 5
Нашел мое решение на Apache/2.2.15 (Unix).
И спасибо за ответ от @QuantumHive:
Во-первых:
Я нашел все
Order allow,deny
Deny from all
вместо
Order allow,deny
Allow from all
а затем:
Я установил
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /var/www/html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
Удалить предыдущую аннотацию "#" до
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /var/www/html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
пс. мой WebDir:/var/www/html