【问题标题】:laravel project routes not working on shared hostinglaravel 项目路由不适用于共享主机
【发布时间】:2016-07-14 09:46:14
【问题描述】:

我在将我的 laravel 项目上传到共享服务器 microsoft azure 时遇到问题。我无法访问除 / 以外的路线。我的路由文件有以下代码:

Route::get(/, function () {
    return view('welcome');
});

Route::auth();

Route::get('/home', 'HomeController@index');

基本上我使用 php artisan make:auth 来生成登录注册默认功能。

我可以通过访问来访问我的 /route :

http://40.121.138.22/monrostudio/public/

但无法访问其他路由,例如 /login、/register 或我创建的任何其他路由。

【问题讨论】:

  • 您应该有一个指向 public 目录的虚拟主机以及 public 目录中的 .htaccess ,它将负责路由。
  • 您将应用程序部署到了哪个 Azure 服务?网络应用还是其他?

标签: php laravel azure


【解决方案1】:

当您转到http://40.121.138.22/ 或http://40.121.138.22/home 之类的根路由时,应根据您的链接为http://40.121.138.22/monrostudio/public/ 加载的页面。

这就是我解决问题的方法:

1) 转到您的托管服务提供商的控制面板,并确保您在public 文件夹或public_html 中安装并配置了您的 Laravel 项目,无论您的托管服务提供商说明如何

2) 确保根据主机的说明设置域的 DNS(我 99% 确定这不是问题,但值得检查。在共享服务器上托管 Laravel 并不是很简单,因为我最近发现自己.

3) 检查您的路线文件。确保你有指向现有控制器的所有页面的路由。 auth 的控制器是 app\Http\Controllers\Auth\AuthController.php。 AuthController 是将用户发送到login 和register 路径的那个。它也是一种将注册用户从register 页面重定向到远离login 页面的登录用户。

【讨论】:

    【解决方案2】:

    我相信你还没有在你的服务器上设置 Mod_Rewrite。

    按照以下步骤为 Apache Server 启用 mod_rewrite。

    sudo nano /etc/apache2/apache2.conf
    

    (打开 apache 配置文件,找到下面的行)

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    

    并将其更改为

    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    

    然后

    sudo a2enmod rewrite
    

    最后

    sudo service apache2 restart
    

    然后你会看到它工作。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 2019-07-29
      相关资源
      最近更新 更多