San*_*ran 13 apache .htaccess mod-rewrite nginx
我目前正在将我的网站从Apache迁移到nginx,但我的.htaccess文件无效.我的网站在/usr/share/nginx/html/mywebsite文件夹里面.我如何.htaccess在我的nginx服务器中使用?
这是我的.htaccess档案:
RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]
Run Code Online (Sandbox Code Playgroud)
uzs*_*olt 18
nginx不支持.htaccess(见这里:"你不能这样做.你不应该.如果你需要.htaccess,你可能做错了.").
你有两个选择(据我所知):
.htaccess的nginx.conf(也许htaccess到nginx转换器可以帮助你)免责声明:我是htaccess for nginx的作者,它现在是开源软件。
在过去的几年里,我创建了一个插件,它在 nginx 中实现了 htaccess 行为,尤其是像RewriteRule,Allow和 之类的东西Deny,这对网络安全至关重要。该插件在我自己的生产环境中使用没有问题。
我完全同意 nginx 的效率和速度,以及为什么他们没有实现 htaccess。不过,想一想。如果您使用 nginx 和 htaccess,情况就更糟了。您仍然可以保持 nginx 的出色性能,而且您可以在一台网络服务器上轻松驱动您的旧设备。
这在 nginx 中不受官方支持。如果您需要这种功能,您将需要使用 Apache 或其他支持它的 http 服务器。
也就是说,官方的 nginx 推理是有缺陷的,因为它将用户想要做的事情与它的完成方式混为一谈。例如,nginx 可以轻松地每 10 秒/分钟左右检查一次目录,或者它可以使用 inotify 和类似的机制。这将避免对每个请求都进行检查的需要......但知道这对你没有帮助。:)
您可以通过编写一个脚本来解决此限制,该脚本将等待 nginx 配置文件出现,然后将它们复制到/etc/nginx/conf.d/. 然而,可能存在一些安全隐患——因为.htaccess在 nginx 中没有本机支持,也不支持限制配置文件中允许的配置指令。天啊。
| 归档时间: |
|
| 查看次数: |
38725 次 |
| 最近记录: |