J'essaie de déplacer une ancienne application d'apache à nginx mais j'ai bloqué ici.
En /.htaccess
RewriteEngine on
RewriteRule ^(.*) public/$1 [L]
En /public/.htaccess
Options +Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
La structure est vraiment simple. Cette application a
./application
./*back-end*
./vendor
./*back-end includes*
./public
./public/.htaccess <- this one
./*front-end*
./tests
./.htaccess <- this one
La seule façon de le faire fonctionner était de changer le serveur. root
à ./public
et a ajouté
location / {
if (!-d $request_filename){ set $rule_0 1$rule_0; }
if (!-f $request_filename){ set $rule_0 2$rule_0; }
if ($request_filename !~ "-l"){ set $rule_0 3$rule_0; }
if ($rule_0 = "321"){
rewrite ^/(.+)$ /index.php?url=$1 last;
}
} #from winginx convertor
mais de cette façon mon extérieur de ./public
Les dossiers sont laissés de côté et l'application est cassée. Je cherche donc un moyen de la réécrire sans exclure les dossiers du back-end.