I use Laravel as backend (API REST) and AngularJS as frontend (consuming API). I would like to have redirects:
/api --> /backend/public (Laravel)
/ --> /frontend/app (AngularJs)
Frontend runs without problem, but Laravel always return 404 for existing routes (NotFoundHttpException in RouteCollection.php).
Where I make a mistake?
My folder structure:
/var/www
-- .htaccess (1)
-- frontend
---- app
------ index.html
------ .htaccess (2)
-- backend
---- public
------ index.php
------ .htaccess (3)
.htaccess (1)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Backend
RewriteRule ^api(.*) backend/public/$1 [L]
# Frontend
RewriteRule ^(.*) frontend/app/$1 [L]
</IfModule>
.htaccess (2)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [L]
</IfModule>
.htaccess (3)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /api/
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Apache configuration
<VirtualHost *:80>
...
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
...
</VirtualHost>
Part of backend/app/Http/routes.php
<?php
Route::get('/', function()
{
return 'Hello World';
});
Route::get('/test', function()
{
return 'Hello Test';
});
Every request to backend (http://domain.com/api*
) return NotFoundHttpException in RouteCollection.php line 145
from Laravel (so backend/public/index.php
is running), for example:
http://domain.com/api
http://domain.com/api/test
Thank you for your time.
api/
and your routes file doesn't contain these prefixes? – alexrussell