也许有人知道我的问题的解决方案。
在本地主机中一切正常。
我买了vps服务器,安装了Ubuntu和LAMP堆栈。
现在将所有文件从本地主机复制到实时服务器,抛出 ftp。
我在 Web 浏览器中编写 ip/public,我看到我的项目我的路径运行良好,但如果我想转到像 ip/public/login 这样的 url,它会抛出 404 错误。(现在只工作公共地址)
公共文件夹中的.htaccess很好。
现在我发现如果我写ip/public/index.php/login,它工作得很好,但我需要它像在本地主机中一样工作
尝试创建指向公用文件夹的符号链接,并将其用作项目的 URL。例如,我的/var/www/html
文件夹中有一个名为 inspections
的项目。如果我尝试访问http://url/inspections
则会出现错误:
403 Forbidden: You don't have permission to access /inspections/ on this server.
但是,在调用此命令后:
ln -s /var/www/html/inspections/public /var/www/html/insp
并导航到http://url/insp
页面显示正确,一切正常。
要记住的另一件事是,app/storage
需要(至少)具有写入权限才能使Laravel正常工作。我通常只做:
sudo chmod 777 -R app/storage
激活所有权限并从那里开始。希望对您有所帮助!
您是否还
检查了此服务器上是否启用了mod_rewrite?也许没有为此文件夹定义覆盖?
尝试:
<?php in_array('mod_rewrite', apache_get_modules()); ?>
或者这个:
<?php die("Enabled: ". strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false); ?>
并检查虚拟主机文件中是否启用了允许覆盖。文件的位置取决于操作系统和结构。
它应该看起来像这样:
Options Indexes FollowSymLinks
AllowOverride All
Require all granted