Voici comment exécuter Laravel dans un sous-dossier avec Traefik. Considérons ce scénario :
Modifiez docker-compose.yml comme suit :
services: app: image: your-app-image # ...the rest of the configuration networks: - traefik labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.constraint-label=traefik - traefik.http.middlewares.app-strip.stripprefix.prefixes=/app # HTTP entrypoint - traefik.http.routers.app-http.entrypoints=http - traefik.http.routers.app-http.rule=Host(`your-app-domain.com`) && PathPrefix(`/app`) - traefik.http.routers.app-http.middlewares=https-redirect,app-strip # HTTPS entrypoint - traefik.http.routers.app-https.entrypoints=https - traefik.http.routers.app-https.rule=Host(`your-app-domain.com`) && PathPrefix(`/app`) - traefik.http.routers.app-https.tls=true - traefik.http.routers.app-https.middlewares=app-strip networks: traefik: external: true
Modifiez .env et définissez le sous-dossier dans APP_URL.
APP_URL=https://your-app-domain.com/app # ...the rest of the configuration
Modifiez app/Http/Middleware/TrustProxies.php et assurez-vous que tous les proxys sont autorisés à laisser Laravel générer des URL HTTPS.
Utilisez toujours les assistants d'URL comme url(), route(), etc., pour générer des URL complètes, y compris le chemin du sous-dossier.
C'est ça ! Vous pouvez maintenant exécuter votre fichier de composition avec docker compose up -d et accéder à votre application Laravel via le sous-dossier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!