gpt4 book ai didi

.htaccess - AllowOverride all 导致错误 403

转载 作者:行者123 更新时间:2023-12-03 23:18:52 26 4
gpt4 key购买 nike

我最近使用 WampServer(2.4 版)创建了一个虚拟主机,因此我可以使用 http://yannbergonzat.local url 访问我的本地网站:

<VirtualHost *>
ServerName yannbergonzat.local
DocumentRoot "F:\Projets\Web\yann"
DirectoryIndex index.php
</VirtualHost>

这是来自 httpd.conf 的 Directory 标签:
<Directory />
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>

这个网站是用 Symfony2 制作的,所以 yannbergonzat.local 指向一个文件夹。如果你想访问实际的网站,你必须去 yannbergonzat.local/web/app.php 。

我创建了一个 .htaccess 文件,以便可以使用 yannbergonzat.local 查看该网站:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [QSA,L]
</IfModule>

现在是问题所在。根据 AllowOverride 的值,存在错误。

当 AllowOverride 设置为“all”时

读取 .htaccess 文件,可以在 yannbergonzat.local 上访问该站点,但无法访问位于另一个文件夹中的资源(样式表、javascripts)(错误 403)

当 AllowOverride 设置为“无”时

.htaccess 文件是 而不是 读取,该站点可以在 yannbergonzat.local 上访问 而不是 (它显示文件夹的内容),你必须写下整个 url (yannbergonzat.local/web/app.php) ,但是可以访问 另一个文件夹中的资源(样式表、javascripts)。

我应该怎么做才能让 yannbergonzat.local 上的网站使用其他文件夹中的资源正常工作?

最佳答案

httpd.conf 的这一更改是 非常危险

<Directory />
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>

因为它允许对您安装 WampServer( Apache) 的整个驱动器进行所有访问,如果那是 C:\驱动器,那么您就可以让黑客的生活变得非常轻松!

你应该把 httpd.conf 改回
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

并将目录规范添加到您的 VHOST 定义中,如下所示
<VirtualHost *:80>
ServerName yannbergonzat.local
DocumentRoot "F:\Projets\Web\yann"
DirectoryIndex index.php
<Directory "F:\Projets\Web\yann">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
AllowOverride none 是 Apache 忽略任何 .htaccess 文件的指令,因此可以解释您所描述的内容。

在设置 Symfony2 站点时,这是虚拟主机设置的推荐配置。您将 /web 文件夹指定为 DocumentRoot See documentation

所以我假设(你没有指定实际的文件夹结构)你需要这样的东西:
<VirtualHost *:80>
ServerName yannbergonzat.local
DocumentRoot "F:/Projets/Web/yann/web"
DirectoryIndex index.php

<Directory "F:/Projets/Web/yann/web">
# enable the .htaccess rewrites
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

这几乎肯定会修复您的 403 错误,因为您现在正在授予对站点实际存在的文件夹的访问权限 Require all granted

关于.htaccess - AllowOverride all 导致错误 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com