Я ищу защитить паролем весь каталог моего сайта с помощью HTML-форм + PHP.Я могу записать сеанс с проверкой подлинности и перемещаться по страницам с помощью этого сообщения (Спасибо!) - однако любые внешние файлы, связанные с этими страницами, не видны браузеру. Вот эталонное изображение
Проблема
страница индекса отображается, но без каких-либо ресурсов (css, js, images, шрифты и т. Д.);)
Каталог
Все находится в корневом каталоге.
├── pages
| ├── page-1.html
| └── page-2.html
| └── page-3.html
├── assets
| ├── main.css
| └── all.js
├── .htaccess
├── login.php
└── index.html
.htaccess
RewriteCond %{REQUEST_FILENAME} !login.php
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* login.php?file=$0 [QSA,L] # pass everything thru php
login.php
<?php
$file = 'index.html';
$password = $_POST['password'];
$key = 'password';
if(isset($_POST['submit'])){
if($password === $key){
$_SESSION['login'] = true;
readfile($file);
die();
} {
echo "<div class='alert alert-danger'>wrong password.</div>";
}
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="" method="post">
<label for="pwd">Password</label>
<input type="password" class="form-control" id="pwd" name="password" required>
<button type="submit" name="submit" class="btn btn-default">Login</button>
</form>
</body>
</html>
index.html
<html>
<head>
<meta charset="UTF-8">
<link href="/assets/main.css" type="text/css" rel="stylesheet">
<title>A title</title>
</head>
<body>
A list of links
<ul>
<li>
<a href="/pages/page-1.html">page-1</a>
</li>
<li>
<a href="/pages/page-2.html">page-2</a>
</li>
<li>
<a href="/pages/page-3.html">page-3</a>
</li>
</ul>
</body>
<script src="/assets/all.js" ></script>
</html>
Я подозреваю, что активы недоступны, потому что они все еще являются частными.Возможно, решение состоит в том, чтобы разрешить доступ не только к индексному файлу?
У меня нулевой опыт написания сценариев на стороне сервера, таких как PHP, поэтому, пожалуйста, потерпите меня, если ответ на этот вопрос действительно очевиден.Заранее большое спасибо !!