Symfony2:将localhost / app_dev.php重定向到localhost /

时间:2013-02-17 12:13:19

标签: apache mod-rewrite symfony

我正在本地开发一个网站/网络应用程序,其中包括许多ajax调用等... 我的问题是每次我必须将app_dev.php包含在网址中 - 所以当我继续生产时,我需要搜索并替换这些网址。

有没有办法通过apache隐藏app_dev.php?我读了很多关于那个的问题,但没有解决方案适合我。

我已经做的是添加这个:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/wamp/www/web"
    DirectoryIndex app_dev.php
    ServerName dummy-host.example.com
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory "C:/wamp/www/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

到我的httpd.conf但它完全被忽略了......

我正在使用WAMP 2.2

3 个答案:

答案 0 :(得分:3)

我将web / .htaccess更改为以下内容:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>

我在httpd.conf中添加了以下内容:

DocumentRoot "c:/wamp/www/web"
<Directory "c:/wamp/www/web">

到我的httpd-vhosts.conf(C:\ wamp \ bin \ apache \ apache2.4.2 \ conf \ extra):

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/wamp/www/web"
    DirectoryIndex app_dev.php
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory "C:/wamp/www/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

答案 1 :(得分:0)

我会采用更加一致的方法来使用这个包:

FOSJsRoutingBundle

然后您可以按名称生成路由,app_dev.php只会在开发环境中添加。

答案 2 :(得分:0)

您似乎正在尝试为Symfony设置开发环境。

更简单的解决方案是创建虚拟主机并告诉它不要使用.htaccess,因为.htaccess文件会导致虚拟主机设置被覆盖。

.htaccesshttpd.conf文件中执行任何操作后,请记住httpd-vhosts.conf

用于开发的虚拟主机mysite.dev

<VirtualHost *:80>
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    DocumentRoot e:/testing/mysite/web
    <Directory  "e:/testing/mysite/web/">
        // disable the .htaccess in the web folder
        // from undoing the attempt to go straight to app_dev.php
        AllowOverride None

        Require local

        // this forces app_dev.php to be run
        <IfModule rewrite_module>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app_dev.php [QSA,L]
        </IfModule>
    </Directory>
    ErrorLog "D:/wamp/logs/mysite.dev.apache.error.log"
    CustomLog "D:/wamp/logs/mysite.dev.apache.access.log" combined
    php_value error_log "D:/wamp/logs/mysite.dev.php.error.log"
</VirtualHost>

用于在PROD环境中进行测试的虚拟主机

<VirtualHost *:80>
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    DocumentRoot e:/testing/mysite/web
    <Directory  "e:/testing/mysite/web/">

        AllowOverride All

        Require local

    </Directory>
    ErrorLog "D:/wamp/logs/mysite.prod.apache.error.log"
    CustomLog "D:/wamp/logs/mysite.prod.apache.access.log" combined
    php_value error_log "D:/wamp/logs/mysite.prod.php.error.log"
</VirtualHost>

现在您可以保留.htaccess文件,因为当您将此站点移动到实时服务器时,它可能非常相关。

您也无需修改默认httpd.conf文件中标准WAMPServer默认值中的任何内容。