2012-01-03 85 views
30

我正在将网站从具有Apache Web服务器的服务器迁移到运行Nginx Web服务器的另一台服务器,并且我想将.htaccess文件问题不仅仅是语法而且文件名,是不是也是“。htaccess还是什么?更改Apache .htaccess文件以用于Nginx

+0

基于大众需求,我开始一个.htaccess换nginx的Lua的-插件:https://github.com/e404/htaccess -for-nginx – Gerald 2017-04-01 10:03:37

回答

31

这里是一个工具,我用:

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

这是不是100%准确,但它是相当不错的基础

而且,这里是关于转换规则的链接:

http://nginx.org/en/docs/http/converting_rewrite_rules.html

这个可以帮助一下:

http://wiki.nginx.org/HttpRewriteModule#rewrite

编辑:

的文件名应该是nginx.conf

+4

并将该文件命名为“.htaccess”也是?? – 2012-01-03 11:39:29

+1

感谢您的快速回复,但我想知道文件名是否也应该是“.htaccess”或其他? – 2012-01-03 11:44:27

+6

这个文件将会是nginx.conf,下面是一个例子:http://brainspl.at/nginx.conf.txt但是也许你仍然可以使用.htaccess并告诉服务器使用这个,但是因为“code”if不同的我会建议不要使用.htaccess来避免混淆 – 2012-01-03 11:47:32

17

Nginx的不具备的.htaccess文件的支持。

但是.htaccess文件不好。这是一种将apache配置的一部分放在文件系统中的方法,并告诉apache在每个请求中检查文件系统,以确定是否没有适当的特殊配置。 .htaccess文件的唯一实际用途是将一小部分配置委托给用户,如果您是主机提供商并希望为您的用户允许某些Web服务器配置。

当nginx重新启动时编译Nginx配置。当然,如果你真的不关心信息泄露问题(比如用户在你的web服务器配置中),但是与.htaccess具有相同的功能,你可以在你的web目录中包含几个文件,每次请求时读取完成后,不是以nginx的方式。

http://wiki.nginx.org/LikeApache-htaccess

你不能做到这一点。你不应该。如果你需要.htaccess,你可能做错了。

+17

不是一个好的答案 - 如果你使用共享主机(例如一个WordPress博客),你只是一个客户;你不能重新编译nginx。是的,按目录进行配置并不是一个好主意,但是当你处于食物链的尽头时,挑剔并不总是可能的。 – 2014-11-12 16:30:44

+2

@PeterFlynn @PeterFlynn这是一个事实,我没有写Nginx的文档,你不会有每个目录的支持,也许包括从服务器或位置范围的配置文件,但这可能会导致Nginx进程崩溃,所以主机可以避免这一点。看起来Nginx并不是为这样的任务而制作的,就这些。如果你把一个.htaccess文件放在那里,它将不会被Nginx读取。 – regilero 2014-11-20 11:07:42