2016-10-24 61 views
2

我我的Apache Web服務器上,並與下面的.htaccess部署的Angular2應用,Angular2 + Nginx的深層鏈接/路由問題

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule^- [L] 
    RewriteRule^index.html [L] 
</IfModule> 

,並在index.html的附加配置,

<base href="/applicationName/"> 

該應用程序能夠加載沒有任何問題,並沒有重定向問題。

我現在試圖在我的Nginx服務器上設置相同的應用程序,但我似乎無法使它工作。

我知道在Nginx中沒有.htaccess,我如何將上述.htaccess轉換爲Nginx主配置?

非常感謝!

+0

有人嗎?謝謝! – avn

回答

1

在我看來,Nginx實際上比apache容易得多。一種方法是創建一個像這樣的服務器塊。當然,如果您有權訪問服務器上的nginx配置文件。

server { 
    listen  80; 
    server_name example.com; 

    root /path/to/your/index; 
    index index.html; 

    location/{ 
     try_files $uri $uri/ /index.html; 
    } 
} 
+0

嗨皮埃爾,我已經在我的默認配置文件中嘗試過上述塊,但仍然沒有運氣。 – avn

+0

我能夠加載主索引頁面,但是當我嘗試執行一個過程時,例如。登錄,我收到錯誤500, ==> /var/log/nginx/error.log <== 2016/10/24 01:45:59 [錯誤] 1005#0:* 2重寫或內部錯誤重定向週期內部重定向到「/index.html」,客戶端:123.123.123.123,服務器:example.com,請求:「POST /identity/api/users/login.json HTTP/1.1」,主機:「123.123.123.123 「,referrer:」http://domain.com/application/login「 – avn

+0

啊,另外需要注意的是在同一臺服務器上會運行多個應用程序,所以根目錄設置爲/ var/www/html主要的文檔根目錄,我會在瀏覽器地址欄之後添加應用程序名稱。 – avn