2013-02-17 180 views
4

我在本地开发一个网站/网络应用程序,其中包括许多Ajax调用等... 我的问题是每次我必须包括app_dev.php到网址 - 所以当我继续推动时,我需要搜索并替换这些网址。Symfony2:重定向本地主机/ app_dev.php到本地主机/

有没有办法通过apache来隐藏app_dev.php?我阅读了很多关于该问题的问题,但没有解决方案为我工作。

什么我已经做了添加此:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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

工作,我改变了我的网站/.htm访问以下内容::

<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 \额外):

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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> 
0

我会去一个更一致的方法与这束:

FOSJsRoutingBundle

然后你就可以通过他们的名字生成路线,并app_dev.php除了会发生在刚开发环境。

+0

看来这个包增加了一个额外的js文件来完成这项工作?这是不是有点夸张? – 2013-02-17 15:43:52

+0

这是一个简单的文件,你也会压缩和缩小。这样你的路由是一致的,即如果你在服务器端代码中改变它们,这些改变也反映在js代码中。 – moonwave99 2013-02-17 16:18:12

0

看来您正在尝试将开发环境设置为Symfony

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

请记住.htaccess无论您在httpd.confhttpd-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文件,因为它是,因为它可能是非常相关的,当你来移动这个网站到一个活的服务器。

您也不需要修改标准WAMPServer默认设置中默认的httpd.conf文件中的任何内容。