2012-01-03 86 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