【问题标题】:Change Apache .htaccess file to be used with Nginx更改 Apache .htaccess 文件以与 Nginx 一起使用
【发布时间】:2012-02-01 10:59:26
【问题描述】:

我正在将网站从具有 Apache 网络服务器的服务器迁移到另一台运行 Nginx 网络服务器的服务器,并且我想转换 .htaccess 文件,问题不仅在于语法,还在于文件名称,也是 ".htaccess" 还是什么?

【问题讨论】:

标签: apache .htaccess nginx


【解决方案1】:

这是我使用的一个工具:

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

【讨论】:

  • 文件也被命名为“.htaccess” ??
  • 感谢您的快速回复,但我也想知道文件名是否也应该是“.htaccess”或其他名称?
  • 该文件将是 nginx.conf,这是一个示例:brainspl.at/nginx.conf.txt 但也许您仍然可以使用 .htaccess 并告诉服务器使用它,但是因为“代码”如果不同我会建议不要使用 .htaccess 以避免混淆
  • Thaaaaaaaanks,我可以将文件放在我想控制对它的访问的目录中吗?
  • 你的意思是在不同的文件夹中有多个 .htaccess?
【解决方案2】:

看这里:

https://www.digitalocean.com/community/questions/configuring-multiple-domains-and-subdomains-dns-nginx-issues-abound

server {  
    server_name  domain1.com;  
    rewrite ^(.*) http://www.domain1.com$1 permanent;  
}  

server {  
    listen 80 default_server;  
    listen [::]:80 default_server ipv6only=on;  
    root /home/user/www/domain1;  
    index index.php index.html index.htm;  

    server_name www.domain1.com;  

    include hhvm.conf;      
} 

【讨论】:

  • 该链接指向遇到不相关问题但没有解决方案的人。
【解决方案3】:

Nginx 不支持 .htaccess 文件。

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

Nginx 配置在 nginx 重启时编译。当然,如果您真的不关心信息泄露问题(例如用户查看您的 Web 服务器配置),您可以包含几个可以放在您的 Web 目录中的文件,但具有与 .htaccess 相同的东西,每次请求时读取搞定了,不是用nginx的方式。

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

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

【讨论】:

  • 不是一个好的答案——如果您使用共享主机(例如 Wordpress 博客),您只是一个客户;你不能重新编译nginx。是的,按目录配置不是一个好主意,但是当您处于食物链的末端时,并不总是可以挑剔。
  • @PeterFlynn 这是一个事实,我没有编写 Nginx 文档,并且您不会支持每个目录,可能包含来自服务器或位置范围的配置文件,但这可能会崩溃Nginx 进程,所以主机可以避免这种情况。似乎 Nginx 不适合此类任务,仅此而已。如果你把一个 .htaccess 文件放在那里,Nginx 就不会读取它。
  • @regilero 宾果游戏。 Nginx 不是为共享主机场景设计的。也不应该这样:共享主机要求每个用户运行自己的 HTTP 服务器,该服务器会被反向代理,至少如果您想要任何安全性的话。
  • @PeterFlynn 如果您使用共享主机,那么您不关心性能或安全性,可以坚持使用 Apache。如果你在乎,那么你将购买一个 VPS,这意味着你可以完全控制 Nginx 配置。
  • @Demi 绝对正确。但在 Real World™ 中,最终用户不是具有修改 Nginx 配置技能的系统工程师。基本上他们得到了他们所支付的:-)
猜你喜欢
  • 2016-07-15
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 2016-11-15
相关资源
最近更新 更多