Я видел много проблем в интернете с этой проблемой, которая у меня есть, но все они очень широкие и трудно точно определить, что с ней не так, поскольку в ней может быть много переменных, поэтому я решил перечислить все, что имеюпопробовал, и, возможно, кто-то может помочь мне.
URL пытается получить доступ
Контроллер
Справочник app/Http/Controllers/DirManagements/GetDirs.php
namespace App\Http\Controllers\DirManagements;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class GetDirs extends Controller
{
public function __construct()
{
}
public function getResult()
{
echo "hi";
}
}
Веб-маршрут
Route::get('dirs', 'DirManagements\GetDirs@getResult');
PHP ремесленный маршрут: список
Domain | Method | URI | Name | Action | Middleware
| |GET|HEAD | dirs | | App\Http\Controllers\DirManagements\GetDirs@getResult | web
Файл, доступный для сайтов Nginx
server {
listen 443 ssl;
root /something;
index index.php index.phtml index.html index.htm index.nginx-debian.html;
server_name something;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
ssl_certificate /etc/letsencrypt/live/something/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/something/privkey.pem; # managed by Certbot
}
Решение
Я не знаю, почему laravel не включил это, когдарасставитьдобавил это в мой конфиг nginx, и это сработало.
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}