2017-03-01 46 views
2

我不確定這是否正常工作,我嘗試過但沒有任何效果。所以沒有錯誤,但似乎仍然是錯誤的。通過Apache配置在此URL中獲取Laravel API:www.example.com/api

我想是我的API(Laravel 5.4)得到這個根網址:www.example.com/api

這裏是適合我的想法:

<VirtualHost \*:80> 
    ServerName example.com 
    DocumentRoot /var/www/vhosts/angular-client 
</VirtualHost>  

<VirtualHost>  
    ServerName example.com/api 
    DocumentRoot /var/www/vhosts/api/public 
</VirtualHost> 

任何建議是值得歡迎的。

最好的問候,

約瑟夫Gremaud

編輯: 剛剛發現它更容易使用目錄像這樣一個別名:

<VirtualHost *:80> 
     DocumentRoot /var/www/spmo 
     ServerName  spmo.corp.sftcm.ch 
     Header set Access-Control-Allow-Origin "*" 
<Directory /var/www/spmo> 
     Require all granted 
     DirectoryIndex index.html 
     Options +Indexes 
</Directory> 
Alias /api /var/www/api/public 
<Directory /var/www/api/public> 
     Require all granted 
     Options +Indexes 
     DirectoryIndex index.php index.html 
</Directory> 
</VirtualHost> 

現在只有一個問題仍然是Laravel配置,因爲我所有的路線都像這樣重定向:

預計:spmo.corp.sftcm.ch/api/api/v1/teams - > should g給我JSON響應。 結果:spmo.corp.sftcm.ch/api/api/v1/teams - >給了我一個404錯誤。

我知道這不好有api/api,但是當我解決我的問題時,我會更改laravel前綴。

回答

1

你缺少在虛擬主機指令虛擬主機參數的IP:

<VirtualHost \*:80>  
    ServerName example.com/api 
    DocumentRoot /var/www/vhosts/api/public 
</VirtualHost> 

您可以使用journalctl | tail在控制檯上看到這些類型的錯誤。

+0

因爲我在這臺服務器上只有1個IP,所以我不需要使用IP作爲*:80自動指向服務器自己的IP。 由於我是新的Apache配置,我不知道是否強烈建議或不在我的情況下 –