2013-08-13 2 views
0

Рассмотрим следующий URL:URL переписывания с apache2/PHP (Symfony2)

http://dns/ePhotograph/web/app.php/home 

Я хотел бы использовать URL переписывания так, что она доступна по следующему адресу:

http://dns/home 

Как может Я делаю это с помощью apache?

EDIT

Это мой виртуальный хост файл:

<VirtualHost 88.191.157.10:80> 
ServerName myurl.fr 
ServerAlias www.myurl.fr 
ServerAdmin [email protected] 
DocumentRoot /var/www/ePhotograph/web 
DirectoryIndex app.php 
<Directory "/var/www/ePhotograph/web"> 
    AllowOverride All 
    Allow from All 
</Directory> 

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

ответ

1

В конфигурации VirtualHost, вам необходимо указать ваш корень документа в web/ и установить индекс app.php. Затем используйте правило перезаписи, чтобы направить все URL-адреса на app.php.

<VirtualHost *:80> 
    ServerName www.example.com 
    ServerAlias www.example.com 
    DocumentRoot "c:\wamp\www\symfony\web" 
    DirectoryIndex app.php 
    <Directory "c:\wamp\www\symfony\web"> 
    AllowOverride All 
    Allow from All 
    </Directory> 

    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ app.php [QSA,L] 
    </IfModule> 
</VirtualHost> 
+0

Я предполагаю, что этот код следует добавить в файл httpd-vhosts.conf? Его нигде не найти на моем сервере. Я просто не понимаю. И файл httpd.conf пуст. Что мне не хватает? – Sam

+0

ОК, я почти там. Мне потребовалось некоторое время, чтобы понять, что в Ubuntu мне пришлось добавить vhost-файл в папку с поддержкой сайтов. Во всяком случае, я получаю 404, когда просматриваю http: // dns/home. Если я перейду к http: //dns/app.php/home, он отлично работает, что означает, что хотя бы мой vhost-файл учитывается. Но правило перезаписи не работает. Я думаю, это связано с тем, что маршрутизатор Symfony захватывает. Как я могу это решить? – Sam

+0

@Sam Проверьте, чтобы включить mod_rewrite и перезапустить apache. – phpisuber01

Смежные вопросы