2013-02-17 2 views
4

Я занимаюсь разработкой веб-сайта/веб-приложения на местном уровне, который включает в себя множество вызовов ajax и т. Д. Моя проблема заключается в том, что каждый раз я должен включать app_dev.php в url - поэтому, когда я иду на prod, мне нужно будет искать и заменять эти URL.Symfony2: redirect localhost/app_dev.php to localhost/

Есть ли способ через 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

Я изменил свой веб /.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 \ конф \ за дополнительную плату):

<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 дополнение будет происходить только в Dev среде.

+0

Кажется, этот комплект добавляет дополнительный файл js для выполнения этой работы? Разве это не преувеличивает? –

+0

Это простой файл, который вы бы сжимали и уменьшали. Таким образом, ваши маршруты согласованы, т. Е. Если вы измените их в коде на стороне сервера, такие изменения отразятся и в коде js. – moonwave99

0

Возможно, вы пытаетесь установить среду разработки для Symfony.

Простым решением было бы просто создать виртуальный хост и сказать ему, чтобы он не использовал .htaccess, так как это файл .htaccess, который вызывает переопределение вашего виртуального хоста.

Помните, что .htaccess применяется после любых действий в файлах httpd.conf или httpd-vhosts.conf.

Virtual Host для развития 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.