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

Qua*_*ive 67 apache .htaccess mod-rewrite httpd.conf

我今天想要做的就是将重定向规则写入子文件夹,例如:输入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]
Run Code Online (Sandbox Code Playgroud)

我这样做了 但是显然没有成功,他们没有告诉我我必须取消注释httpd.conf中的模块:

LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)

所以我也这样做了.再没有成功.他们没有告诉我我必须更改我的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>
Run Code Online (Sandbox Code Playgroud)

再次没有成功,因为我在输入URL时收到此错误:

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

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

Qua*_*ive 168

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

Require all granted
Run Code Online (Sandbox Code Playgroud)

代替

Order allow,deny
Allow from all
Run Code Online (Sandbox Code Playgroud)

订单允许指令被弃用的Apache 2.4.

  • 该死的贬值! - Apache错误消息本来不错 (21认同)
  • 是的,完全与@AndrewAtkinson结盟.多年的apache2,现在,相同的版本,不同的配置. (3认同)
  • 很抱歉问我们应该把这条线放在哪里? (2认同)

jer*_*ady 13

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

默认情况下,Appache 不限制从ipv4 访问.(普通外部ip)

可能限制的是'httpd.conf'(或'apache2.conf'中的配置,具体取决于您的apache配置)

解:

全部替换:

<Directory />
     AllowOverride none
    Require all denied

</Directory>
Run Code Online (Sandbox Code Playgroud)

<Directory />
     AllowOverride none
#    Require all denied

</Directory>
Run Code Online (Sandbox Code Playgroud)

因此删除了对Apache的所有限制

更换Require localRequire all grantedC:/wamp/www/目录

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
#   Require local
</Directory>
Run Code Online (Sandbox Code Playgroud)