Comment supprimer " Web / app dev.php" de Symfony2 Url?
je viens de créer mon premier projet Symfony2. Mais le "/web/app_dev.php " partie dans L'URL m'agace. Il devrait être possible de le faire sans serveurs virtuels...
mais quand j'essaierai ça.htaccess je reçois toujours des erreurs de routage et le web "/" est toujours ajouté à l'url...
EDIT: L'ensemble du projet est également dans un sous-répertoire nommé "symfonyTest". L'Url de la page de démonstration est "http://localhost/symfonyTest/web/app_dev.php/demo/" et il devrait devenir "http://localhost/symfonyTest/demo/". Les liens doivent aussi avoir cette syntaxe. Est-ce possible?
7 réponses
Symfony2 est livré avec un mode de débogage intégré, qui est ce que vous utilisez lorsque vous accédez à des url avec l'app_dev.ajout de php. Le mode de débogage cache nettement moins que le mode de production auquel on peut accéder en dirigeant votre navigateur vers l'url, mais en laissant de côté l'app_dev.php. Si l'accès à cette url ne fonctionne pas, cela signifie probablement que vous devez vider votre cache de production.
pour effacer le terminal de cache direct you (console de commande) à la racine de votre Symfony projet. À partir de là, tapez la commande suivante:
php app/console cache:clear --env=prod --no-debug
Par les commentaires ci-dessous dans Symfony 3 cela a déménagé:
php bin/console cache:clear --env=prod --no-debug
ceci devrait effacer le cache de vos productions et vous permettre d'accéder aux urls sans l'app_dev.php.
Comme pour la partie web de l'url. La façon la plus simple de l'enlever est de définir la racine web de votre projet dans le dossier web. Il est préférable de le faire avec apache en utilisant des serveurs virtuels, mais il y a des moyens de le faire avec le htaccess.
http://kb.siteground.com/how_to_change_my_document_root_folder_using_an_htaccess_file/Espérons que cette aide!
<VirtualHost *:80>
DocumentRoot "path_to_symfonyTest/web"
ServerName "symfonyTest"
<Directory "path_to_symfonyTest/web">
DirectoryIndex app_dev.php
AllowOverride All
Order allow,deny
Allow from all
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app_dev.php [QSA,L]
RedirectMatch permanent ^/app_dev\.php/(.*) /
</Directory>
</VirtualHost>
ça fait partie de mon httpd.conf
j'ai eu ce problème aussi, veuillez jeter un oeil à mes configurations et de les essayer
à l'intérieur de mon .htaccess:
Salut à tous, j'ai eu ce problème aussi. Et il semble que le "stock" .htaccess est le problème. J'ai résolu ce problème dans mon environnement et voici mon .htaccess avec des notes:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}:: ^(/.+)/(.*)::$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/ [R=301,L] ##### this is the part that you should tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app_dev.php [L] ##### this is the part that you should tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the startpage to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$ /app.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
dans mon entrée "symfony" dans /etc / apache2 / sites-disponible:
<VirtualHost 127.0.1.15>
ServerAdmin webmaster@localhost
ServerName symfony
DocumentRoot /var/www/Symfony/web
DirectoryIndex app.php
<Directory /var/www/Symfony/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
si vous utilisez un hôte virtuel apache, vous pouvez le faire fonctionner comme vous le souhaitez. Voici un exemple d'hôte virtuel de mon XAMPP:
<VirtualHost *:80>
ServerName myurl.local
# Basic stuff
DocumentRoot "C:/path/to/symfony/web"
DirectoryIndex app.php
<Directory "C:/path/to/symfony/web">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
après avoir redémarré votre apache, vous pouvez accéder au projet par