我最近更新了我的Xampp服务器(从1.7>> 1.8),从那以后我再也无法运行用Symfony 1.4.8编写的项目了。
它说:
您无权访问所请求的目录。没有索引文档或目录是读保护的。
但它有权限!
实际上它适用于旧版本的Xampp。 Symfony 1.4.8是否可能与Apache 2.4或PHP 5.4不兼容?我正在使用Windows 8企业版,但也在Windows 7旗舰版上进行了测试,同样存在问题。
任何建议都将不胜感激。
这是我的配置:
NameVirtualHost 127.0.0.1:1111
Listen 127.0.0.1:1111
<VirtualHost 127.0.0.1:1111>
DocumentRoot "D:\AMir\PROJECTS\BarzinMehr\web"
DirectoryIndex index.php
<Directory "D:\AMir\PROJECTS\BarzinMehr\web">
AllowOverride All
Allow from All
</Directory>
Alias /sf C:\xampp\htdocs\symfony\data\web\sf
<Directory "C:\xampp\htdocs\symfony\data\web\sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
这是我的.htaccess
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
答案 0 :(得分:6)
更改每个目录块,如下所示:
<Directory "your address">
AllowOverride All
Allow from All
</Directory>
到
<Directory "your address">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
似乎允许被弃用,而不是 apache 2.4 中的新指令需要(根据this article)
答案 1 :(得分:1)
尝试删除.htaccess文件并直接访问index.php
文件。如果这样做(或者至少产生PHP错误,而不是apache错误),则可能意味着未启用mod_rewrite,并且.htaccess
未按预期工作。
我建议删除:
<IfModule mod_rewrite.c>
并且它正在关闭.htaccess文件中的标记,如果它们存在,因为如果没有安装模块,最好得到一个没有安装它的错误,而不是网站不能以奇怪的方式工作。
如果以上方法无法解决问题,请查看apache的错误日志 - 这通常包含线索。