【问题标题】:Laravel Virtual Host Request Url Not foundLaravel 虚拟主机请求 URL 未找到
【发布时间】:2015-09-14 01:30:56
【问题描述】:

我的 laravel 应用程序使用 VirtualHosts 时遇到问题,我可以看到 laravel 的主页,但是当我尝试创建类似 advkit.dev/login 的路由时,我得到“找不到请求的 URL /login这个服务器。”所以我所有的路线都不起作用有谁知道我需要在我的代码中更改什么才能使路线起作用。我也将 debug 设置为 true,我只在主页上获得调试控制台,例如 advkit.dev 没有其他地方

路线:

<?php

Route::get('/', function()
{
    return View::make('hello');
});

// login.blade.php
Route::get('/login', function() {
    return View::make('login');
});

主机

127.0.0.1       www.localhost.com
127.0.0.2       advkit.dev

httpd-hosts 文件

<VirtualHost advkit.dev>
    DocumentRoot C:\wamp\www\advkit\public
    ServerName advkit.dev
</VirtualHost>

【问题讨论】:

  • 你的模组重写设置正确吗?我看不出你的代码或配置有什么问题。
  • 我在重写中没有改变任何东西我该怎么做
  • 有时 laravel 不能使用默认配置。在他们的网站上,他们进行了另一次重写。试试这个。 laravel.com/docs/5.0/configuration#pretty-urls
  • 我使用的是 laravel 4.2,但代码不起作用

标签: php laravel virtualhost


【解决方案1】:

您可以在 .conf 文件中添加以下行。

<Directory /var/www/gloops/public>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
 </Directory>

保存文件并通过给定命令启用重写模式并重新启动apache2服务。

sudo a2enmod rewrite
sudo service apache2 restart

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,以下答案中给出的虚拟主机设置对我有用:https://stackoverflow.com/a/33760330/4561150

    <Directory "C:/myproject/mysubfolder/public">
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride All
       Require all granted
    </Directory>
    

    【讨论】:

      【解决方案3】:

      听起来 Apache 忽略了您的 .htaccess 文件。您可以解决这个问题,但更好的解决方案是将 .htaccess 文件的内容放入您的虚拟主机中。然后您的虚拟主机将如下所示:

      <VirtualHost advkit.dev>
          DocumentRoot C:\wamp\www\advkit\public
          ServerName advkit.dev
      
          <Directory C:\wamp\www\advkit\public>
              # Ignore the .htaccess file in this directory
              AllowOverride None
      
              # Rewrite URLs
              <IfModule mod_rewrite.c>
                  <IfModule mod_negotiation.c>
                      Options -MultiViews
                  </IfModule>
      
                  RewriteEngine On
      
                  # Redirect Trailing Slashes
                  RewriteRule ^(.*)/$ /$1 [L,R=301]
      
                  # Handle Front Controller
                  RewriteCond %{REQUEST_FILENAME} !-d
                  RewriteCond %{REQUEST_FILENAME} !-f
                  RewriteRule ^ index.php [L]
              </IfModule>
          </Directory>
      </VirtualHost>
      

      【讨论】:

        猜你喜欢
        • 2021-10-12
        • 2019-11-29
        • 2015-06-22
        • 2016-01-23
        • 2017-05-23
        • 2016-06-23
        • 2016-03-26
        • 2011-03-25
        • 2014-02-15
        相关资源
        最近更新 更多