Symfony mod_rewrite只有主要路由有效

时间:2013-05-13 13:12:08

标签: .htaccess mod-rewrite symfony

我想使用mod_rewrite。我在/var/www/.htaccess这段代码

<IfModule mod_rewrite.c>

    Options +FollowSymlinks
    RewriteEngine On
    #AllowOverride All

    #Allow from All  
    #RewriteBase /WorldClock
    #RewriteBase WorldClock/web/app.php
    # Explicitly disable rewriting for front controllers
    RewriteRule ^/web/app_dev.php - [L]
    RewriteRule ^/web/app.php - [L]

    # Fix the bundles folder
    #RewriteRule ^(.*)$ WorldClock/web/app.php/test [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    # Change below before deploying to production
    RewriteRule ^(.*)$ WorldClock/web/app.php [QSA,L]
    #RewriteRule ^(.*)$ WorldClock/web/app_dev.php [QSA,L]

</IfModule>

如果行是注释,则表示它是内部服务器错误 我的项目在/var/www/WorldClock/..文件夹中,css | js | img我转移到/var/www 如果我尝试进入localhost那么它可以正常工作。但是,如果我点击链接并获取此http://localhost/info/12的网址,那么我就会

 Not Found The requested URL /info.xml/12 was not found on this server.

没有.htaccess,一切正常。 mod_rewrite在phpinfo()中打开;我使用symfony2和Ubuntu

1 个答案:

答案 0 :(得分:0)

为了让我们能够提供帮助,我们至少需要您的网络服务器配置。我认为这只是Web服务器未正确配置的问题。如果我的答案是关闭的,请用有意义的错误消息更新你的问题,即检查你的error.log和更详细的描述哪些路由有效,哪些没有,因为我不完全确定你是否可以访问localhost并查看默认的“It work's”页面或项目的首页以及您是否可以访问您的资产?

只需在worldclock.conf中创建一个新文件/etc/apache2/sites-available/

<VirtualHost *:80>
    ServerName localhost

    DocumentRoot /var/www/WorldClock/web
    <Directory /var/www/WorldClock/web>
        # enable the .htaccess rewrites
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>
</VirtualHost>

现在您只需启用新的虚拟主机并重新启动Web服务器:

sudo a2ensite worldclock

# When both hosts use localhost as ServerName there might be some problems
# so we'll disable the default host, which we won't need anyway(?)
sudo adissite default

sudo service apache2 restart

如果这只是您的开发环境,您可以使用PHP的内部Web服务器(假设您安装了5.4),这将减轻所需的一些工作,因为您只需要运行:php app/console server:run以使其运行。然后,您可以通过以下方式访问您的应用:http://localhost:8000默认情况下。

要找出安装的PHP版本,请在终端中运行:php -v