我有一个在服务器上正常运行的 Laravel 8 应用程序。我已将其移至另一台服务器,但现在在新服务器上找不到 404。我没有在新服务器上改变任何东西,所以我相信它一定是与服务器相关的问题。我无法诊断服务器上的问题。详细信息是有关服务器上应用程序的一些详细信息:
文件权限遵守以下内容
chown -R apache.apache /var/www/LARAVEL_APP
chmod -R 755 /var/www/LARAVEL_APP
chmod -R 755 /var/www/LARAVEL_APP/storage
已使用以下命令清除路由和缓存:
php artisan route:clear
php artisan cache:clear
php artisan config:clear
php artisan cache:clear
.htaccess 文件在 LARAVAL-APP/public 目录下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
Options +FollowSymlinks
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
导航到 LARAVEL-APP 的根目录时,我可以正确看到以下屏幕。当我尝试加载位于 index.html
的 LARAVEL-APP/public/index.php/admin/login
时出现问题
路线列表
列表在执行 php artisan route:list | grep admin/login
时可用
| | POST | admin/login | generated::LTvCw5lDDMDMdfPT | Brackets\AdminAuth\Http\Controllers\Auth\LoginController@login | web |
| | GET|HEAD | admin/login | brackets/admin-auth::admin/login | Brackets\AdminAuth\Http\Controllers\Auth\LoginController@showLoginForm
404 屏幕
答案 0 :(得分:1)
在 .htaccess 文件中试试这个代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
我希望这对你有用。
答案 1 :(得分:1)
您好像还没有启用 mod-rewrite
,试试这个:
sudo a2enmod rewrite
还要确保你在你的 apache conf 中这样做:
<Directory "/var/www/">
# ...
AllowOverride All
Require all granted
</Directory>
也重启apache:
sudo service apache2 restart