Lil*_*zat 4 .htaccess wampserver symfony apache2.4
我最近使用WampServer(版本2.4)创建了一个虚拟主机,因此我可以使用URL http://yannbergonzat.local访问我的本地网站:
<VirtualHost *>
ServerName yannbergonzat.local
DocumentRoot "F:\Projets\Web\yann"
DirectoryIndex index.php
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这是httpd.conf中的Directory标记:
<Directory />
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
这个网站是用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>
Run Code Online (Sandbox Code Playgroud)
现在是问题所在.根据AllowOverride的值,存在错误.
读取.htaccess文件,可以在yannbergonzat.local上访问该站点,但无法访问另一个文件夹中的资源(样式表,javascripts)(错误403)
.htaccess文件未被读取,该网站无法访问yannbergonzat.local(它显示文件夹的内容),您必须编写整个网址(yannbergonzat.local/web/app.php),但资源(样式表,Javascript角),其是在另一个文件夹可以被访问.
我应该怎么做才能让yannbergonzat.local上的网站与其他文件夹中的资源合作正常?
这种变化httpd.conf是非常危险的
<Directory />
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
因为它允许所有访问你安装WampServer(Apache)的整个驱动器,如果这就是C:\驱动器你很容易让黑客生活!
您应该将httpd.conf更改为
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
Run Code Online (Sandbox Code Playgroud)
并将目录规范添加到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>
Run Code Online (Sandbox Code Playgroud)
AllowOverride none是指示Apache忽略任何.htaccess文件的指令,以便解释您所描述的内容.
设置Symfony2站点时,这是虚拟主机设置的建议配置.您将/web文件夹指定为DocumentRoot
参见文档
所以我假设(你没有指定实际的文件夹结构)你需要这样的东西:
<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>
Run Code Online (Sandbox Code Playgroud)
这几乎肯定会修复您的403错误,因为您现在授予访问Require all granted该站点实际存在的文件夹的权限.
| 归档时间: |
|
| 查看次数: |
7722 次 |
| 最近记录: |