将Apache .htaccess文件更改为与Nginx一起使用

37

我正在将一个使用Apache Web服务器的网站迁移到另一台运行Nginx Web服务器的服务器上,我想转换.htaccess文件,问题不仅在于语法,还有文件名,它也是".htaccess"吗?


请查看:http://winginx.com/en/htaccess - kenorb
3个回答

38

4
文件名为".htaccess",是吗? - Amir Iskander
1
谢谢您的快速回复,但我还想知道文件名是否应该是“.htaccess”还是其他什么? - Amir Iskander
6
文件名将为nginx.conf,这是一个示例:http://brainspl.at/nginx.conf.txt,但是您仍然可以使用.htaccess并告诉服务器使用它。由于“代码”不同,建议不要使用.htaccess以避免混淆。 - Book Of Zeus
1
谢谢,我可以把文件放在一个我想要控制访问的目录里吗? - Amir Iskander
你能告诉我,在 PHP 文件中应该在哪里使用输出吗?我使用了那个转换器,它给了我一个包含 if 的输出,现在我想知道该如何使用它? - user4920811
显示剩余3条评论

23

Nginx不支持.htaccess文件。

但.htaccess文件是有害的。这是一种将apache配置部分放到文件系统上并告诉apache在每个请求时检查文件系统是否有特殊配置的方法。 唯一真正使用.htaccess文件的情况是,如果您是主机提供商并想允许用户进行一些Web服务器配置,则可以将其委托给用户的一小部分配置。

Nginx配置在nginx重启时编译。当然,您可以包含多个文件,并将其放在Web目录中,如果您确实不关心信息泄露问题(例如用户查看您的Web服务器配置),则可以这样做,但像.htaccess一样在每次请求时读取的东西不符合Nginx方式。

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

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


24
如果你使用共享主机(例如WordPress博客),那么这不是一个好答案——你只是一个客户,无法重新编译nginx。是的,针对每个目录的配置并不是一个好主意,但当你处于食物链的末端时,很难挑剔。 - Peter Flynn
3
@PeterFlynn,这是事实,我没有编写Nginx文档,你将无法获得每个目录的支持,可能只能从服务器或位置范围包含配置文件,但这可能会导致Nginx进程崩溃,因此主机可能要避免这样做。看起来Nginx不适用于这种任务,就是这样。如果您在那里放置一个.htaccess文件,Nginx将不会读取它。 - regilero
@regilero bingo。Nginx并不适用于共享托管场景。也不应该这样做:共享托管需要每个用户运行自己的HTTP服务器,该服务器被反向代理到,至少如果您想要任何安全性的话。 - Demi
1
@Demi 绝对正确。但在现实世界中,最终用户不是具备修改Nginx配置文件技能的系统工程师。基本上他们得到了他们所付出的代价 :-) - Peter Flynn
Apache比nginx更灵活,更容易与php、django等集成,配置和实现也更容易。对于拥有大量流量的网站,Nginx的扩展性更好。对于大多数网站来说,Apache就足够了。 - MagicLAMP
显示剩余3条评论

-5

该链接是指某人遇到了一个与问题无关的问题,他们没有解决方案。 - depquid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接