Не работают страницы кроме главной

Начал настраивать сервер. Ubuntu 20.04, apache, php, mysql.

Не работают страницы кроме главной, ошибка 404. Погуглил, поменял права на файлы в /var/www. Толку 0.

index.php

<?php

include_once("header.php");

include_once($page);

include_once("footer.php");
?>

header.php

<?php
include_once("lib/navigation.php");
header("Cache-Control: no-cache, must-revalidate");
?>
<!DOCTYPE html>
<html>
    
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $links; ?></title>
</head>
<body>

footer.php

</body>

</html>

navigation.php

<?php
ini_set('display_errors', 1);

$this_siteDomain = "https://".$_SERVER['SERVER_NAME'];
$this_siteName = $_SERVER['SERVER_NAME'];

$links = $_SERVER['REQUEST_URI']; // получаем URL на котором находится пользователь
$links = str_replace("'", '', $links); // чистим от кавычек
$links = str_replace('"', '', $links); // чистим от кавычек
$url = explode("/", $links);


if($links == "/"){
    $page = "page/login.php";
}else if($url[1] == "main"){
    $page = "page/login.php";
}


?>

.htaccess

Options +SymLinksIfOwnerMatch -Indexes
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?f=$1 [L,QSA]
RewriteRule ^(lib/|page/|cache/) - [F,L,NC]

php_flag allow_url_fopen on
php_flag allow_url_include on

php_value max_execution_time 999

php_value display_errors 1

Помогите решить проблему. Уже не знаю, что делать... Заранее спасибо!


Ответы (1 шт):

Автор решения: SnegoWik

Проблема решилась следующими действиями:

  1. Включение mod_rewrite
# sudo a2enmod rewrite
  1. Необходимо добавить «AllowOverride All» в файле конфигурации Apache.
# sudo nano /etc/apache2/apache2.conf

В строках:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
</Directory>

Поменяйте "AllowOverride None" на "AllowOverride On"

!!!Перед тем как что-то менять, обратите внимание на первую строчку "<Directory /var/www/>". Именно тут необходимо поменять none, на all

3.Перезагрузите сервер Apache

# service apache2 restart
→ Ссылка