我知道这个问题很多,但我读了所有与此相关的问题,但他们没有解决我的问题。
我刚刚部署了一个Symfony 3网络应用程序,我跟着Symfony server configuration documentation,发现www.domain.com显示了目录结构!
以下是我使用文件/etc/apache2/sites-available/site.com.conf
的配置:
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/project/web
<Directory /var/www/project/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
当我访问www.domain.com/web和www.domain.com/web/app.php时,我可以看到该应用
我希望能够访问www.domain.com并查看该应用程序。
答案 0 :(得分:0)
更改行:
AllowOverride None
到下一个:
AllowOverride All
删除部分<IfModule mod_rewrite.c>
并使用标准Symfony的.htaccess
文件。
此外,您需要将PHP设置为apache的模块。确保加载PHP模块的http.conf
中有未注释的行:
LoadModule php7_module libexec/apache2/libphp7.so
答案 1 :(得分:0)
您错过了目录标记中包含的DirectoryIndex app.php
或DirectoryIndex dev_app.php
。如果没有请求文件,这将导致apache加载app.php。
https://httpd.apache.org/docs/2.0/mod/mod_dir.html
<Directory /var/www/project/web>
DirectoryIndex app.php
...
</Directory>
还要确保启用了mod重写。
a2enmod rewrite
你可能不得不使用sudo。
最后一点说明:
Options -MultiViews
应该<Directory>
包含在mod_rewrite
内以供所有时间使用,而不仅仅是{{1}}启用时。