Je suis en train de migrer mon site Web d'Apache vers nginx
, mais mon fichier .htaccess
ne fonctionne pas. Mon site Web se trouve dans le dossier /usr/share/nginx/html/mywebsite
. Comment utiliser .htaccess
sur mon serveur nginx
?
Ceci est mon fichier .htaccess
:
RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]
Nginx ne supporte pas .htaccess
(voir ici : "Vous ne pouvez pas faire cela. Vous ne devriez pas. Si vous avez besoin de .htaccess, vous le faites probablement mal.").
Vous avez deux choix (à ma connaissance):
.htaccess
dans nginx.conf
(peut-être que le convertisseur htaccess en nginx vous aide)Ce n'est pas supporté officiellement dans nginx. Si vous avez besoin de ce type de fonctionnalité, vous devrez utiliser Apache ou un autre serveur http qui le supporte.
Cela dit, le le raisonnement officiel de nginx est erroné car il confond ce que les utilisateurs veulent faire avec la façon dont il est fait. Par exemple, nginx pourrait facilement vérifier les répertoires uniquement toutes les 10 secondes/minute environ, ou utiliser des mécanismes inotify et similaires. Cela éviterait d'avoir à vérifier chaque demande ... Mais savoir que cela ne vous aide pas. :)
Vous pouvez contourner cette limitation en écrivant un script qui attendrait que les fichiers de configuration nginx apparaissent, puis en les copiant dans /etc/nginx/conf.d/
. Toutefois, certaines implications en termes de sécurité peuvent exister: étant donné qu'il n'existe pas de support natif pour .htaccess
dans nginx, il n'y a pas non plus de support pour limiter les directives de configuration autorisées dans les fichiers de configuration. YMMV.