web / app.php未在symfony2中删除

时间:2013-05-28 10:21:19

标签: php apache symfony

我创建了第一个Symfony应用程序,但是网址太大了

http:// ip address / repair / web / app_dev.php / home

http:// ip address / repair / web / app.php / home

我希望将其设为http:// ip address / repair / home

这是apache2的httpd.conf

NameVirtualHost是一个ip地址

ServerName“修复”

DocumentRoot "/var/www/repair/web"

<Directory "/var/www/repair/web">
   DirectoryIndex app.php
    AllowOverride None
    Order allow,deny
    Allow from All
 RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    RedirectMatch permanent ^/app\.php/(.*) /$1
</Directory>

我的.htaccess在symfony的web文件夹中包含

Options +FollowSymlinks

RewriteEngine On  

# Explicitly disable rewriting for front controllers
RewriteRule ^app.php - [L]
RewriteRule ^app.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

我已经重新调整了apache2的mod-Rewrite

我收到错误

在此服务器上找不到请求的URL / repair / home。

Apache / 2.2.20(Ubuntu)服务器,IP地址为端口80

3 个答案:

答案 0 :(得分:0)

如果您想通过ip访问网站,则需要将代码复制到“localhost”目录(/ var / www,例如)

答案 1 :(得分:0)

Apache配置中的AllowOverride None行导致.htaccess文件被忽略。

如果用AllowOverride All替换它,Apache将遵循.htaccess文件中的指令。

您可以找到有关AllowOverride here

的更多信息

答案 2 :(得分:0)

仔细检查你是否真的为Apache加载了mod-rewrite。在使用Apache 2安装Debian 6时,该模块可用,但未加载。为了加载它,你可以在mods-enabled目录中添加一个符号链接到mods-available目录中的模块,如下所示:

root@server:/etc/apache2/mods-enabled# ln -s ../mods-available/rewrite.load ./rewrite.load

然后,您需要重新启动Apache2才能重新加载其配置。在Debian上sudo service apache2 restart