简体   繁体   中英

Laravel not showing index.php

I'm new in Laravel, I made virtual host http://example.com and installed Laravel in folder of this domain but when I try to access this domain I get this 在此输入图像描述

This is your VirtualHost setup

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/example" ## <-- pointed to wrong folder
    ServerName example.com
    ServerAlias www.example.com 
    ErrorLog "logs/www.example.com.domain-error.log"
</VirtualHost>

You didn't point it to the public folder. It should be (These are minimum requirements)

<VirtualHost *.80>
    DocumentRoot "C:/xampp/htdocs/example/public"
    ServerName example.com
</VirtualHost>

You should point it to the public folder because index.php is inside public folder.

I use this kind of setup

<VirtualHost laravel4.dev>
    DocumentRoot "D:/xampp/htdocs/laravel4/public"
    ServerName laravel4.dev
</VirtualHost>

Corresponding setup in windows/system32/drivers/etc/host file is

127.0.0.2           ci.dev
127.0.0.3           laravel4.dev ## <-- This is for current vHost
127.0.0.4           symcom.dev

So, I can navigate to my site on local host using http://laravel4.dev ( dev for development)

That's exactly what you should be seeing. When you click the 'public' folder do you see a 'You have arrived.', with the laravel logo? If so, then you've correctly installed laravel.

The 'public' folder, is the main folder in which the actual public has access to your website when you put it on a server. You'll want to do one of two things here:

The simple (but insecure) way:

Add a .htaccess file to the root of your web folder containing this text:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

This will make all requests go to www.example.com/public, but only show www.example.com in the URL.

The harder (but correct) way:

This completely depends on which provider you will be hosting your website on, but on Godaddy and others, you have the option of selecting the root folder of your website. In this case you'd select the 'public' folder to be the root. I cannot give you a tutorial on that because this option ranges on availability on every hosting provider.

EDIT: I should add just in case. When you add content to your site, such as CSS/images/files and everything the public will have access to, make sure you put them in the public folder.

您VirtualHost配置需要将DirectoryRoot进一步指向public/目录,因此它可以在该目录中使用其.htaccessindex.php

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM