我正在尝试部署 laravel
申请A2Hosting共享主机。我的文档根目录是:/public_html目录。我上传了我的 laravel
中的所有内容将除 public 文件夹之外的应用程序复制到托管的/beta 目录中。
然后我将 public 目录中的所有内容上传到 /public_html 目录。
在我的index.php 文件中,我更改了以下两行:
require __DIR__.'/../beta/vendor/autoload.php';
$app = require_once __DIR__.'/../beta/bootstrap/app.php';
现在我只能正确看到我的应用程序的主页。即 mydomain.com。 mydomain.com 后面的任何超链接都会显示 404 消息。在我的 View 文件中,这就是我引用路径的方式:
<a href="/login">Login</a>
但是部署应用程序后,每当我点击该链接(即 mydomain.com/login)时,我都会收到 404 Not Found: The resource requested could not be found on this server!
信息。我尝试改变/login
至login
在 <a>
标签。相同的结果。我该如何解决这个问题?
最佳答案
Eisenheim,这是 htaccess 问题:在您的 Web 项目的根文件夹中获取一个 .htaccess
文件。
并将以下代码放入其中,
<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>
然后尝试不使用 index.php
它应该可以完美工作。
关于php - 每个路由在共享主机上都显示 404 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46647392/