3 votes

Configuration d'Apache pour obtenir l'API Laravel dans cette url : www.example.com/api

Je ne suis pas sûr que cela fonctionne ou non, j'ai essayé mais cela n'a eu aucun effet. Il n'y a donc pas d'erreur, mais quelque chose ne semble toujours pas fonctionner.

Ce que je veux, c'est que mon api (Laravel 5.4) obtienne cette url racine : www.example.com/api.

Voici ce qui correspond à mon idée :

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

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

Toute suggestion est la bienvenue.

Meilleures salutations,

Joseph Gremaud

EDIT : Je viens de découvrir qu'il est plus facile d'utiliser Directory avec un alias comme celui-ci :

<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>

Il ne reste plus qu'un seul problème dans la configuration de Laravel car toutes mes routes redirigent comme ceci :

Attendu : spmo.corp.sftcm.ch/api/api/v1/teams -> devrait me donner une réponse JSON. Résultat : spmo.corp.sftcm.ch/api/api/v1/teams -> m'a donné une erreur 404.

Je sais que ce n'est pas bon d'avoir des api/api mais je changerai les préfixes de Laravel quand je résoudrai mon problème.

1voto

Troyer Points 3840

Il vous manque l'IP de l'argument de l'hôte virtuel dans la directive VirtualHost :

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

Vous pouvez utiliser journalctl | tail sur la console pour voir ce type d'erreurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X