【问题标题】:Laravel routes not working correctly on digital ocean LAMP dropletLaravel 路线在数字海洋 LAMP 液滴上无法正常工作
【发布时间】:2019-10-31 14:17:15
【问题描述】:

我可以通过mysite.com/ 正确路由访问我的 Laravel 站点,并使用/检索欢迎视图。

我可以访问我的公共目录中的文件,例如 mysite.com/img/test.jpg

但是当我尝试访问任何其他路由时,例如mysite.com/login。

我收到以下错误

找不到

在此服务器上找不到请求的 URL /联系人。

看起来应用程序正在尝试访问另一个没有点击 index.php 的路由以相应地生成视图。

我使用的是 Laravel 自带的默认 .htaccess 文件。

我的 apache conf 文件指向我的公共目录。

以前有人遇到过类似的问题吗?

【问题讨论】:

  • 你在/routes/web.php中定义了路由吗? Route::get('/login',callback);或者如果您使用的是内置身份验证:Auth::routes(); 添加在服务提供者的引导或注册方法中

标签: php apache laravel .htaccess


【解决方案1】:

我遇到了同样的问题,我做了不同文章中提到的所有事情,但问题仍然存在

  1. 使用sudo a2ensite rewrite启用重写模式
  2. 更新位于 /etc/apache2/sites-available/example.conf 的 conf 文件

    <Directory /var/www/html/project/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
  3. 然后使用sudo service apache2 restart重新启动服务器

完成上述所有步骤后问题仍然存在,然后我更改了 apache2.conf 文件,一切正常。

在

/etc/apache2/apache2.conf

只改变第 3 行,如下所示

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None   //change this line to AllowOverride All
    Require all granted
</Directory>

之后我不必在网址中添加../index.php/...

【讨论】:

  • 对于第 1 步,它是 sudo a2enmod rewrite 而不是 a2ensite。请更新您的答案。
【解决方案2】:

可能你需要启用模组重写

sudo a2enmod rewrite

重启 Apache。

sudo service apache2 restart

按照下面链接上的教程进行操作

https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-ubuntu-14-04

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2021-07-31
    • 2015-02-16
    • 1970-01-01
    • 2017-07-07
    • 2016-10-03
    • 1970-01-01
    相关资源
    最近更新 更多