当前位置: 首页 > 知识库问答 >
问题:

共享主机中的Laravel路由无法正常工作

叶福
2023-03-14

我的问题与另一个问题非常相似,但该线程中提供的解决方案对我没有帮助。

我使用本指南将我的Laravel应用部署到共享托管服务(顺便说一句,该指南与链接问题的答案之一非常相似)

下面是我的路线/web.php文件

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

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

Auth::routes();

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

Route::group(['prefix' => 'law', 'middleware' => ['ability:superadministrator,read-users|create-users']], function () {

    Route::get('/search', 'LawController@showSearchView');
    Route::get('/new', ['middleware' => ['permission:create-users'], 'uses' => 'LawController@showNewView']);

    Route::get('/find', 'LawController@find');
    Route::get('/edit/{id}', 'LawController@edit');

    //region post
    Route::post('/new', ['middleware' => ['permission:create-users'], 'uses' => 'LawController@store']);
    Route::post('/search', ['middleware' => ['permission:read-users'], 'uses' => 'LawController@search']);
    /*Route::post('/modify', ['middleware' => ['permission:create-users'], 'uses' => 'LawController@modify']);*/
    //endregion
});

Route::group(['prefix' => 'user', 'middleware' => ['ability:superadministrator,read-users|create-users']], function () {
    //..similar to the previous one
});
//some other route groups

问题是,我可以访问欢迎页面和登录页面。验证后,我转到主页,然后问题开始出现。我尝试之外的每一条路径(比如mydomain.net/law/search)都会让我以某种无限循环的方式再次访问主页。注销路径也可以正常工作。

奇怪的是,如果我尝试一个不存在的路径,比如mydomain。net/诸如此类,我选择了Laravel框架的知识路线NotFoundHttpException/“NotFoundHttpException”。

我没有收到任何错误在PHP日志或在我的浏览器控制台。javascript工作正常。

我联系了主机服务的支持人员,以确保Apache启用了mod_重写,显然是这样。

我在谷歌上搜索了大约3个小时,并在这里进行了更深入的挖掘,但任何东西都能帮助我理解这个问题。有小费吗?

下面是一个例子。htacces文件(如果有任何帮助):

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

杂项:

  • PHP 7.1
  • Laravel 5.4
  • composer.json参考
  • 我使用Laravel AdminLTE和侧边栏菜单也不能正常工作。我认为这是导致这两个问题的同一个问题。
  • 我的. env文件没有什么特别的,但这里是它的(一部分)。

共有1个答案

酆俊远
2023-03-14

将此添加到您的应用程序中。htaccess文件

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]

此规则将在内部将REQUEST_URI的内容加载到index.php

 类似资料:
  • 我正在尝试在共享主机(godaddy)上部署我的Laravel项目,到目前为止,我只取得了部分成功。 我采取了以下步骤: 创建子域,root- 现在我可以成功登录,这将我带到,但是我所有其他没有的路由都不工作。例如: abc.xyz.com/public-作品 abc.xyz.com/home-不工作 我注意到,如果我手动添加到他们工作的所有路由!。 我的htaccess: 那么,如何像abc那样

  • 我面临的问题,而上传我laravel项目到共享服务器,微软天蓝色。我不能访问除/以外的路线。我的路由文件有以下代码: 基本上,我使用php artisan make:auth生成登录注册默认功能。 我可以访问我的 /route: http://40.121.138.22/monrostudio/public/ 但不能访问其他路由,如/login、/register或我创建的任何其他路由。

  • 我已经开发了一个laravel web应用程序,我必须上传到已经有WordPress应用程序的主机上,文件系统如下所示: 我无法访问根文件夹,无法联机访问公共html,因此我在公共html中创建了两个文件夹(laravel后端,laravel前端)。 所以我所做的就是编辑索引。php以指向类似以下内容的laravel后端文件: 需要DIR/.../laravel后端/引导/autoload.php

  • 我将一个Laravel5项目部署到一个共享托管帐户,将应用程序文件放在www文件夹之外,只将公用文件夹放在www文件夹之内。正如这里所解释的,最好的答案是:Laravel4和使用FTP部署应用程序的方法。。。没有3。因为这个文件在Laravel 5中不存在。 现在,当我在控制器内调用public_path()时,我会在www/public之外而不是www/public之外得到类似于我的appfil

  • 我有个问题。My laravel在共享主机上看不到图像。 我有公共文件夹在~/域/DOMAIN/public_html/APP和其余的文件在~/域/DOMAIN/文件。 我的文件正在上载到~/domains/DOMAIN/files/storage/app/public/uploads/avatars 但在应用程序中,我看不到这一点。 这是上传代码: 你能帮我做什么吗?

  • 我使用hostinger,在我的父托管目录中有两个文件夹 my-laravel-app-文件夹 public_html 公开/索引。我变了