Как мне избавиться от необходимости использовать «/app.php/» в рабочем URL-адресе нового приложения Symfony2?

Я выполнил первую установку Symfony2,

    php app/console --version
        Symfony version 2.0.11 - app/dev/debug

я установил ее под существующим DocumentRoot, настроив vhost моего сервера apache2

    
        ...
        DocumentRoot /srv/www/localhost_www
        ...
        
            AllowOverride none
            Options -ExecCGI +FollowSymLinks +Includes +Indexes +MultiViews
            Order Allow,Deny
            Allow from All
        
        ...
        Alias /TESTAPP  "/srv/www/TESTAPP/web/"
        
            Options All
            AllowOverride All
            Allow from All
        

        Alias /TESTAPP.symfony  "/srv/www/TESTAPP/"
        
            Options All
            AllowOverride All
            Allow from All
        
        ...

После успешной установки и успешного следования «Книге» для сборки демонстрационное приложение "Hello", если я перехожу в браузере к любому/всем,

  dev:
        http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
        http://localhost/TESTAPP/app_dev.php/hello/ME
  prod:
        http://localhost/TESTAPP.symfony/web/app.php/hello/ME
        http://localhost/TESTAPP/app.php/hello/ME

я вижу ожидаемое,

"Hello ME!"

я хочу переписать только производство URL-адреса, скрывающие «app.php», чтобы следующий набор URL-адресов работал в панели навигации браузера для моего приложения Symfony2:

  dev:
        http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
        http://localhost/TESTAPP/app_dev.php/hello/ME
  prod:
     !! http://localhost/TESTAPP.symfony/web/hello/ME
     !! http://localhost/TESTAPP/hello/ME

Iiuc, web/.htaccess по умолчанию

        cat web/.htaccess
                
                    RewriteEngine On
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteRule ^(.*)$ app.php [QSA,L]
                

должен измениться.

Я копался в документах и ​​в Интернете, пробовал различные рекомендации по модификации RewriteRule, добавлению «RedirectMatch Permanent» и т. д., и мне не удалось получить простой

http:// localhost/TESTAPP/hello/ME

для работы. Кажется, мне всегда нужно добавлять «/app.php/».

Какие конкретные изменения мне нужно внести, чтобы это заработало?

Спасибо.


@chasen

включен ли mod_rewrite для apache?

да

если у вас есть файл .htaccess в вашем веб-каталоге

я делаю

и вы размещаете файл, указывающий на веб-папку,

Это, как и выше,

    Alias /TESTAPP  "/srv/www/TESTAPP/web/"  
          

app.php не должен быть нужен.

это моя проблема. без него у меня не работает.

В частности,

    https://localhost/TESTAPP/app.php/hello/ME

возвращает:

"Hello Me!"

но

    https://localhost/TESTAPP/hello/ME

возвращает

Object not found!

The requested URL was not found on this server.
If you entered the URL manually please check your
spelling and try again.

If you think this is a server error, please contact
the webmaster.
Error 404

5
задан richsage 28 February 2012 в 12:02
поделиться