Apache - 404未找到

时间:2016-11-20 18:14:55

标签: php apache .htaccess virtualhost ubuntu-16.04

下午好,

我正在详细阐述一个项目,并且我已经使用ubuntu16.04在虚拟机中安装了php,mysql,apache2。我在本地工作,我已经启动了laravel 5.3,我运行了一个API并创建了一个新的虚拟主机并放置了DocumentRoot my_folder/publicServerName name_virtual_host。然后我转到我的主机文件并添加了一个新行:127.0.0.1 name_virtual_host。当我放在我的浏览器http://name_virtual_host上时,laravel页面看起来就像它应该的那样,但是当我输入http://name_virtual_host/api时,它会返回:

  

未找到

     

在此服务器上找不到请求的URL / api。

     

Apache / 2.4.18(Ubuntu)服务器在name_virtual_host以前的端口80   出现JSON。

我的虚拟主持人:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName name_virtual_host
        DocumentRoot /var/www/my_folder/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

如果在我的文件夹中,我写了命令

  

php artisan serve

并输入网址:

  

name_virtual_host:8000 / API

,这有效。

我该如何解决这个问题? 我认为解决方案是创建文件.htaccess,但是我应该把它放在这个文件中(.htaccess)?

感谢。

1 个答案:

答案 0 :(得分:1)

Laravel should come with a public/.htaccess file将所有请求重定向到index.phpRewriteRule ^ index.php [L]部分)。

如果您没有此文件,请添加它。如果您已有此文件,请确保在您的apache服务器上启用mod_rewrite(并重新启动它)。

如果没有它,当您要求api时,Apache会在DocumentRoot中查找名为/api的文件。该请求必须从laravel documentation

发送至index.php
  

公共目录包含index.php文件,该文件是所有请求进入您的应用程序的入口点。