J’essaie de déployer une application symfony dans un sous-dossier de mon répertoire racine et j’essaie de comprendre comment le faire correctement. Je vais juste expliquer la situation. Mon répertoire racine a un sous-dossier nommé /private
, qui contient un fichier htaccess qui redirige vers /private/web/current/
(je déploie en utilisant capistrano).
- ROOT/ ---- private/ ------- .htaccess (1) ------- current/ ----------- web/ ------------- app.php ------------- .htaccess (2)
RewriteEngine On RewriteRule ^$ /private/current/web/ [L]
DirectoryIndex app.php RewriteEngine On RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .? - [L] RewriteRule .? %{ENV:BASE}/app.php [L] RedirectMatch 302 ^/$ /app.php/
Lorsque je demande /private
, je reçois une erreur symfony :
No route found for "GET /private/"
Lorsque je demande /private/login
AND /login
, je reçois une erreur de navigateur :
Not Found The requested URL /private/login was not found on this server.
Désormais, symfony est routé depuis le répertoire racine, mais la racine du projet symfony est en fait / privée. Je suis un noob dans le déploiement et les règles de htaccess, donc y a-t-il quelqu’un qui peut m’aider avec cela?
Merci d’avance.
Je pense que le premier htaccess est le problème (le chemin après privé doit être ajouté à la nouvelle URL). Essayez sth comme
RewriteRule ^/private/?(.*) /private/app/web/$1
ou (généré avec http://www.htaccessredirect.net/ )
RedirectMatch 301 /private(.*) /private/app/web/$1