it-swarm.com.de

Wie kann ich die .htaccess-Datei in nginx verwenden?

Ich migriere derzeit meine Website von Apache nach nginx, aber meine .htaccess-Datei funktioniert nicht. Meine Website befindet sich im Ordner /usr/share/nginx/html/mywebsite. Wie kann ich .htaccess in meinem nginx-Server verwenden?

Dies ist meine .htaccess-Datei:

RewriteEngine on
RewriteRule video/watch/([[email protected]$*-]+)/?$ "videos-single.php?id=$1" [NC]
7

Der nginx unterstützt .htaccess nicht (siehe here : "Das können Sie nicht tun. Sie sollten dies nicht tun. Wenn Sie .htaccess benötigen, machen Sie es wahrscheinlich falsch.").

Sie haben zwei Möglichkeiten (wie ich weiß):

10
uzsolt

Haftungsausschluss: Ich bin der Autor von htaccess für nginx , eine kostenpflichtige Software. Keine bösen Absichten.

In den letzten Jahren habe ich ein Plugin erstellt, das htaccess-Verhalten in nginx implementiert, insbesondere Dinge wie RewriteRule , Allow und Deny, was für die Websicherheit entscheidend sein kann. Das Plugin wird problemlos in meiner eigenen Produktivumgebung eingesetzt.

Ich teile den Punkt von Effizienz und Geschwindigkeit in Nginx, und warum sie Htaccess nicht implementiert haben. Denken Sie jedoch darüber nach. Sie können es nicht schlimmer machen, wenn Sie nginx plus htaccess verwenden. Sie behalten die hervorragende Leistung von nginx bei und können Ihre Legacy-Appliances mühelos auf einem Webserver betreiben.

0
Gerald

Dies wird offiziell in nginx nicht unterstützt. Wenn Sie diese Art von Funktionalität benötigen, müssen Sie Apache oder einen anderen HTTP-Server verwenden, der dies unterstützt.

Das offizielle Nginx-Argumentation ist jedoch fehlerhaft, weil es das zusammenbringt, was die Benutzer mit der Art und Weise machen wollen, wie sie gemacht wird. Zum Beispiel könnte nginx die Verzeichnisse einfach nur etwa alle 10 Sekunden/Minute überprüfen oder Inotify und ähnliche Mechanismen verwenden. Dies würde die Notwendigkeit vermeiden, es bei jeder Anfrage zu überprüfen ... Aber das zu wissen, hilft Ihnen nicht. :)

Sie können diese Einschränkung umgehen, indem Sie ein Skript schreiben, das darauf wartet, dass die Konfigurationsdateien von nginx angezeigt werden, und diese dann nach /etc/nginx/conf.d/ kopieren. Es kann jedoch einige Auswirkungen auf die Sicherheit haben - da .htaccess in nginx nicht nativ unterstützt wird, werden auch die zulässigen Konfigurationsanweisungen in Konfigurationsdateien nicht eingeschränkt. YMMV.

0
johndodo