微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-Laravel路线无法在生产中使用

我有一个Laravel5 / angularJS应用程序(将Laravel作为api的其余部分,并且将其作为前端的角度)

在我当地的环境中,一切都像魅力.

但是,当我上传到主机时,我只能访问索引页面,其他所有内容都抛出404.

在我的共享托管中,我有这样的文件系统.

public_html
    laravel-backend (it has app, bootstrap, confi...etc, all laravel app)
    laravel-frontend (it would be like the public folder of the laravel default file system)
    .htaccess

.htaccess内容

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} anotherAppDomainAtSharedServer$[NC]
    RewriteCond %{REQUEST_URI} !/.*$
    RewriteRule ^(.*)$/$1 [L]

    RewriteCond %{HTTP_HOST} laravelAppDomain$[NC]
    RewriteCond %{REQUEST_URI} !^/laravel-frontend/.*$
    RewriteRule ^(.*)$/laravel-frontend/$1 [L]

</IfModule>

laravel-frontend内的index.PHP

require __DIR__.'/../laravel-backend/bootstrap/autoload.PHP';
$app = require_once __DIR__.'/../laravel-backend/bootstrap/app.PHP';


$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

和routes.PHP

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

Route::group(['prefix' => 'api/v1'], function(){
    Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]);
    Route::post('authenticate', 'AuthenticateController@authenticate');
    ....

因此,正如我所说,我可以看到登录页面,但是当我要登录时会出现404错误

http://laravelAppDomain/laravel-backend/api/v1/authenticate 404 (Not Found)
NotFoundHttpException in RouteCollection.PHP line 161:

有什么线索吗?我想念任何配置吗?

此外,我无法访问配置服务器,我不能像在本地环境中那样编辑文件夹主机,虚拟主机或类似文件夹.

解决方法:

假设您在Unix上的apache2服务器上:

>运行命令sudo a2enmod rewrite
>确保/etc/apache2/sites-available/000-default.conf中有一部分如下所示.请注意,/ var / www / html是apache2的认根目录,您的目录可以是/ var / www / html / public或类似的名称.

<目录/ var / www / html>
   允许全部覆盖
< /目录>
>运行sudo服务apache2重新启动
>看看是否可行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。