Proença
Proença

Reputation: 1196

Laravel redirects to a route but then apache gives 404 error

I have a site that is working on the same server in a different url (staging), but now I've deployed the site and the base url ("/") is redirected to the login url (so laravel is sort of working), but then I get a 404 error from apache.

If I use sub.domain.com/index.php/route, it works, but if I use sub.domain.com/route redirects to the login route and gives a 404 error.

I also changed the routes.php to return the login view in the route "/" and it show the login form correctly.

Upvotes: 17

Views: 35409

Answers (3)

ch271828n
ch271828n

Reputation: 17597

For VirtualHost

Only add these lines into httpd.conf of your apache:

<Directory /var/www/sitefolder/public>
  AllowOverride All
  allow from all
  Options +Indexes
</Directory>

Or you can replace the first line with:

<Directory />

And if all doesn't work, you can try:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Upvotes: 7

Mehrdad Hedayati
Mehrdad Hedayati

Reputation: 1454

The problem might come from a module in your Apache server called rewrite module. in windows you can just uncomment this line from your httpd.conf

#LoadModule rewrite_module modules/mod_rewrite.so

I'm running Ubuntu 14.04 and enabled it using

sudo a2enmod rewrite

Try these with an Apache restart. It might work for you as well.

Upvotes: 33

Proen&#231;a
Proen&#231;a

Reputation: 1196

After adding

AllowOverride All

to the vhost configuration, got it working. Probably the default configuration wasn't allowing the redirects?

Here's my final (and working) vhost configuration:

DocumentRoot /var/www/sitefolder/public
 ServerName site.domain.com
 <Directory /var/www/sitefolder/public>
  AllowOverride All
  allow from all
  Options +Indexes
</Directory>

Upvotes: 35

Related Questions