apache 服务器上的新 Symfony 项目需要 mod_rewrite 代码?
new Symfony project on apache server needs mod_rewrite code?
我刚刚创建了一个新的(测试)symfony 项目并将我的 apache webroot 设置为 /home/user/project/
(不确定是否应该 /home/user/project/web/
?)
但是,根据我对此处灯泡部分的了解:http://symfony.com/doc/current/book/page_creation.html#the-web-directory - 没有发生任何内部重新路由。因此,这不起作用:
http://localhost/random/10
但这些确实有效:
http://localhost/app_dev.php/random/10
http://localhost/app.php/random/10
仔细检查,如果我启动内部 PHP 服务器 (php app/console server:start
),那么一切都会正确地重新路由 - 这确实有效:
http://localhost:8000/random/10
我认为我需要对 .htaccess 进行更改是否正确?如果是这样,是否有 'standard' 部分代码用于将 apache 与 symfony 一起使用?
编辑:
我已经更新了我的 apache2.conf
(如果不是我理解的 ubuntu,其他人应该是 httpd.conf
)如下:
<Directory /home/user/Project/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如果我没记错的话,.htaccess
已经将 DirectoryIndex
定义为 app.php
。但是,您的 Apache 配置文件 httpd.conf
可能会阻止覆盖。
确保您的 .htaccess
中有该行,并检查 httpd.conf
中 AllowOverride
(docs) 的值。尝试将 AllowOverride
设置为 All
并查看是否有效。
我刚刚创建了一个新的(测试)symfony 项目并将我的 apache webroot 设置为 /home/user/project/
(不确定是否应该 /home/user/project/web/
?)
但是,根据我对此处灯泡部分的了解:http://symfony.com/doc/current/book/page_creation.html#the-web-directory - 没有发生任何内部重新路由。因此,这不起作用:
http://localhost/random/10
但这些确实有效:
http://localhost/app_dev.php/random/10
http://localhost/app.php/random/10
仔细检查,如果我启动内部 PHP 服务器 (php app/console server:start
),那么一切都会正确地重新路由 - 这确实有效:
http://localhost:8000/random/10
我认为我需要对 .htaccess 进行更改是否正确?如果是这样,是否有 'standard' 部分代码用于将 apache 与 symfony 一起使用?
编辑:
我已经更新了我的 apache2.conf
(如果不是我理解的 ubuntu,其他人应该是 httpd.conf
)如下:
<Directory /home/user/Project/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
如果我没记错的话,.htaccess
已经将 DirectoryIndex
定义为 app.php
。但是,您的 Apache 配置文件 httpd.conf
可能会阻止覆盖。
确保您的 .htaccess
中有该行,并检查 httpd.conf
中 AllowOverride
(docs) 的值。尝试将 AllowOverride
设置为 All
并查看是否有效。