我最近使用WampServer(版本2.4)创建了一个虚拟主机,因此我可以使用网址http://yannbergonzat.local访问我的本地网站:
<VirtualHost *>
ServerName yannbergonzat.local
DocumentRoot "F:\Projets\Web\yann"
DirectoryIndex index.php
</VirtualHost>
这是来自httpd.conf的目录标记:
<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的值,有错误。
读取.htaccess文件,可以在yannbergonzat.local上访问该站点,但无法访问另一个文件夹中的资源(样式表,javascripts)(错误403)
.htaccess文件不读取,网站可以在yannbergonzat.local上访问不(它显示文件夹的内容),你必须写整个网址(yannbergonzat.local / web / app.php),但是可以访问另一个文件夹
中的资源(样式表,javascripts)。我应该如何在yannbergonzat.local上使用其他文件夹中的资源正常工作?
答案 0 :(得分:8)
对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
。
答案 1 :(得分:2)
此代码对我有用:
sudo chmod -R 755 /var/www/***
答案 2 :(得分:0)
确保SELinux没有阻止访问您的网络目录:
chcon -R -u system_u -t httpd_sys_content_t /home/user/www