Режим обслуживания сайта позволяет моему IP видеть только домашнюю страницу (htaccess) - PullRequest
0 голосов
/ 08 января 2019

После некоторых исследований я обнаружил, что код .htaccess для отображения режима обслуживания выглядит следующим образом:

# BEGIN MAINTENANCE MODE
# <IfModule mod_rewrite.c>
#  RewriteEngine on
#  RewriteCond %{REMOTE_ADDR} !^111\.111\.111\.111
#  RewriteCond %{REQUEST_URI} !maintenance.html$ [NC]
#  RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
#  RewriteRule .* maintenance.html [R=302,L]
# </IfModule>
# END MAINTENANCE MODE

Это вроде работает нормально, но как только я попадаю на домашнюю страницу, используя свой компьютер (который является единственным, который загружает реальный сайт), и я пытаюсь перейти на другую страницу сайта (пример: homepage is hello.com и еще одна страница - hello.com/blog) она перенаправит меня в режим обслуживания (для меня это файл PDF).

Другими словами, домашняя страница загружается с моим IP, но все остальные страницы сайта перенаправляются в PDF-файл, который я установил для режима обслуживания.

Я искал ответ, но все, что я вижу повсюду, это код, который я показываю вам выше.

Примеры:

Перенаправление на страницу обслуживания

Как установить режим обслуживания для всего сайта с помощью htaccess

.htaccess Перенаправление страницы «Нет на обслуживание»

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Я не мог понять это, но я нашел обходной путь (обратите внимание, что я использую Wordpress):

  1. Дублированный файл index.php и названный им index2.php
  2. В Wordpress в разделе «Настройки <Общие» y изменил «Адрес веб-сайта» (примечание - не URL-адрес Wordpress, а только веб-сайт) на: <a href="http://example.ex/index2.php" rel="nofollow noreferrer">http://example.ex/index2.php вместо http://example.ex/.
  3. В файле .htaccess я добавил предложение перенаправления для index.php. Вот как это выглядело так:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RedirectMatch ^/$ /maintenance.html
</IfModule>

Это позволило мне показать страницу «обслуживания» обычному пользователю, но при этом я мог видеть весь сайт при переходе прямо к: http://example.ex/index2.php

0 голосов
/ 08 января 2019

Попробуйте раскомментировать директивы в вашем htaccess. Все это закомментировано. Ничто из этого не может быть использовано без директив. Любая строка, начинающаяся с #, будет игнорироваться вашим сервером.

...