Пишу spa на vue + бекенд на php На open server все работало нормально, но когда я загрузил приложение на реальных хостинг то на любой запрос к беку появляется ошибка GET http://andre8d9.beget.tech/api/controllers/auth.php net::ERR_ABORTED 500 (Internal Server Error)
Бек и фронт находятся в одной директории, вот что прописано в .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.html?q=$1 [L,QSA]
Вот функция аутентификации
async auth() {
try {
const response = await axios.get('/api/controllers/auth.php');
if(response.data == 'Ok') {
return true
}
} catch (error) {
console.error('User not authorized', error);
return false
}
},
Вот бекенд
<?php
class DataBase {
public static function connectDB() {
$mysqli = new mysqli
(
'localhost',
'root',
'',
'task_list'
);
if($mysqli->connect_errno) {
die('Ошибка соединения' . $mysqli->connect_errno);
}
return $mysqli;
}
}
?>
<?php
require '../database/DataBase.php';
require '../utils/Validate.php';
class User {
public function signup() {
$requestBody = file_get_contents('php://input');
$requestBody = json_decode($requestBody, true);
$resName = Validate::validateName($requestBody['name']);
$resEmail = Validate::validateEmail($requestBody['email']);
$resPassword = Validate::validatePassword($requestBody['password']);
if(!$resName || !$resEmail || !$resPassword) {
die('Ошибка валидации');
}
$mysql = DataBase::connectDB();
$name = $requestBody['name'];
$email = $requestBody['email'];
$password = $requestBody['password'];
$authKey = bin2hex(random_bytes(16));
$prepare = $mysql->prepare("INSERT INTO `users` (name, email, password, auth_key) VALUES (?, ?, ?, ?)");
$prepare->bind_param('ssss', $name, $email, $password, $authKey);
$prepare->execute();
$prepare->close();
$mysql->close();
echo 'Ok';
}
public function login() {
$requestBody = file_get_contents('php://input');
$requestBody = json_decode($requestBody, true);
$mysql = DataBase::connectDB();
$prepare = $mysql->prepare("SELECT * FROM `users` WHERE `email` = ? AND `password` = ?");
$prepare->bind_param('ss', $requestBody['email'], $requestBody['password']);
$prepare->execute();
$result = $prepare->get_result();
if($result->num_rows) {
$user = mysqli_fetch_assoc($result);
$_SESSION['user']['id_user'] = $user['id_user'];
$_SESSION['user']['auth_key'] = $user['auth_key'];
echo 'Ok';
} else {
echo 'wrong login or password';
}
$prepare->close();
$mysql->close();
}
public function auth() {
if($_SESSION['user']) {
echo 'Ok';
} else {
echo 'user not authorized';
}
}
public function logout() {
if(isset($_SESSION['user'])) {
unset($_SESSION['user']);
session_destroy();
echo 'Ok';
} else {
echo 'error';
}
}
}
?>
Вот гит хаб проекта https://github.com/AndreyDevWork/TaskList
Пытался пошаманить над .htaccess но ничего не помогло