我目前正在将我的网站从Apache迁移到nginx
,但是我的.htaccess
文件无法工作。我的网站位于/usr/share/nginx/html/mywebsite
文件夹中。如何在我的nginx
服务器上使用.htaccess
?
这是我的.htaccess
文件:
RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]
我目前正在将我的网站从Apache迁移到nginx
,但是我的.htaccess
文件无法工作。我的网站位于/usr/share/nginx/html/mywebsite
文件夹中。如何在我的nginx
服务器上使用.htaccess
?
这是我的.htaccess
文件:
RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]
Nginx 不支持 .htaccess
(参见这里:"你不能这样做。如果你需要 .htaccess,你可能是在做错事情。")。
你有两个选择(据我所知):
.htaccess
导入到 nginx.conf
中(也许 htaccess 转换器 可以帮助你)。声明:本人是htaccess for nginx的作者,该插件现在已经成为开源软件。
在过去的几年中,我创建了一个插件,将htaccess行为实现到nginx中,特别是像RewriteRule
、Allow
和Deny
这样的内容,可以对Web安全至关重要。该插件在我的生产环境中使用,没有出现任何问题。
我完全赞同nginx的效率和速度的观点,以及他们为什么不实现htaccess。 然而,请想一想。如果您在使用nginx时加上htaccess,情况不会变得更糟。您仍然保持nginx的高性能,同时可以轻松地在一个Web服务器上驱动您的旧设备。
官方不支持在nginx中使用此功能。如果需要此类功能,则需要使用Apache或其他支持此功能的http服务器。
也就是说,官方nginx解释 是有缺陷的,因为它混淆了用户想要做什么和实现方式。例如,nginx可以轻松地每10秒/分钟检查一次目录,或者可以使用inotify等机制。这将避免在每个请求上都进行检查...但是知道这些并不能帮助你。 :)
您可以通过编写脚本来绕过此限制,该脚本将等待nginx配置文件出现,然后将其复制到/etc/nginx/conf.d/
。但是可能会存在某些安全问题-由于nginx中没有原生支持.htaccess
,因此也不支持限制配置文件中允许的配置指令。结果可能因人而异。
只需使用myphpmyadmin编辑您的数据库。
注意:您可以通过简单地将"替换"字段留空来测试此操作。
在进行更改之前,务必备份数据库。这可能听起来很可怕,但实际上并不是。它非常简单,并且可以用于快速替换几乎任何内容。
/etc/nginx/nginx.conf
- 可以查看nginx
包的文件列表。 - uzsolt