Я бы хотел временно перенаправить весь трафик с example.com на страницу обслуживания и вернуть код 503. Я создал страницу maintenance.html:Apache2 перенаправить на страницу обслуживания - отсутствующие изображения
<!DOCTYPE html>
<html>
<head>
<title>We'll be back!</title>
<link href="css/main.css" rel="stylesheet" media="screen">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body style="background-color: #red">
<div>
<div id="header-row" class="row">
<img src="/images/header-logo.png" alt="loogo" class="img-responsive center-block">
</div>
</div>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/main.js"></script>
</body>
</html>
Я положил страницы HTML, CSS, JS и изображений папки в корневую папку документов. Тогда я приложил файл apache2.2 конфигурации со следующими линиями:
RewriteEngine On
#prevent from recursiv redirection
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteCond %{REQUEST_URI} !(js|css|images)$
RewriteCond %{REQUEST_FILENAME} !.*\.p
RewriteCond %{REQUEST_FILENAME} !-f
#503 and redirect
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.h
#do not cache
Header Set Cache-Control "max-age=0, no-store"
Все вызовы перенаправляются на страницу maintenance.html, но не отображаются изображения. Я попытался исправить это, добавив:
RewriteCond %{REQUEST_FILENAME} !-d
, но затем перенаправление остановлено. Странно, что добавление RewriteCond% {REQUEST_URI}! (Js | css | images) $ исправило проблему с отсутствующими стилями, но изображения по-прежнему перенаправлены. Что я делаю неправильно?
EDIT 1:
Я проверил, как браузер ищет заголовок-logo.png. Адрес был http://example.com/images/header-logo.png, поэтому я добавил для тестирования следующего правила:
RewriteCond %{REQUEST_URI} !^/images/header-logo\.png$
, но это тоже не помогло ....
Я пробовал, и результат был довольно неожиданным, перенаправление не сработало, и на главной странице отсутствовали стили и образы (только чистый текст). – orim
У вас должен быть полный путь к js/css, например '' ИЛИ иначе вы можете добавить это чуть ниже '
' в HTML: 'Я пробовал обновленную версию, но она привела страницу вниз Ошибка: сервис временно недоступен. Может быть, это вызвано «!» в RewriteRule? – orim