禁止您无权访问/在此服务器上[关闭]

问题描述 投票:65回答:6

我今天想做的就是将重定向规则写入子文件夹,例如:您输入URL:example.com,然后重定向到example.com/subfolder

这么简单的愿望。我试图在互联网上找到解决方案。互联网告诉我在htdocs root中添加一个.htaccess文件:

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时收到此错误:

禁止您无权访问此服务器上的/。

现在我卡住了,我在互联网上找不到更多的解决方案。由于私人原因,我只是在Windows 7机器上运行Apache 2.4。

apache .htaccess mod-rewrite httpd.conf
6个回答
162
投票

找到我的解决方案感谢Error with .htaccess and mod_rewrite 对于Apache 2.4和所有* .conf文件(例如httpd-vhosts.conf,http.conf,httpd-autoindex.conf ..etc)使用

Require all granted

代替

Order allow,deny
Allow from all

Apache 2.4中不推荐使用Order和Allow指令。


13
投票

工作方法{如果配置以外没有问题}

默认情况下,Apache不限制从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地址访问服务器,并且您收到错误,例如Forbidden您无权访问/在此服务器上

只需打开你的httpd.conf文件(在我看来是C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf

搜索

<Directory "D:/wamp/www/"> .... ..... </Directory>

将允许替换为127.0.0.1

允许所有人

保存更改并重新启动服务器。

现在,您可以使用您的IP地址访问您的服务器


2
投票

问题出在https.conf文件中!

# Virtual hosts
# Include conf/extra/httpd-vhosts.conf

散列(#)被删除或混乱时会发生错误。这两行应如上所示。


1
投票

在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>

PS。我的WebDir是:/ var / www / html


0
投票

这适用于Mac OS Mojave:

<Directory "/Users/{USERNAME}/Sites/project">
    Options +Indexes +FollowSymLinks +MultiViews
    AllowOverride All
    require all granted
</Directory>
© www.soinside.com 2019 - 2024. All rights reserved.