Записать .htaccess файл в PHP?

На моем сайте PHP я хотел бы иногда показать страницу обслуживания пользователям. Я знаю, что могу сделать это в PHP очень легко, но я использовал бы htaccess файл, я думаю, что производительность может быть лучше этот путь. Таким образом, то, что я желаю знать, является банкой, я изменяю htaccess файл в PHP? Если возможно, что я думаю также,

1 - Имейте в файлы, и 1 будет иметь код ниже в нем, и другой не будет, оба файла содержать мой другой материал htaccess также. Затем php может переименовать эти 2 файла, когда я запускаю администраторский скрипт для переключения, какой файл показывают, путем изменения это - имя к .htaccess

2-Read содержание текущего .htaccess файла и ДОБАВЛЯЮТ код ниже в него, затем затем смочь удалить его из файла в случае необходимости.

RewriteEngine On
RewriteBase / 
RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

Моя цель состоит в том, чтобы создать администраторский сценарий, который может иметь 1 обработку щелчка для изменения страницы обслуживания, чтобы показать или не показать.

Любой пример кода или подсказки относительно того, как сделать это или если даже возможно изменить .htaccess файл от PHP

7
задан JasonDavis 19 January 2010 в 00:00
поделиться

2 ответа

Можно использовать ALTER TABLE t ORDER BY col; Допустимый синтаксис ORDER BY соответствует операторам SELECT.

-121--3212651-

Джефф Этвуд опубликовал эту тему в «Великий раскол в новой линии»

Википедия охватывает историю новой линии .

Вкратце, CR + LF - это ссылка на дни использования электрической пишущей машинки, когда для перемещения курсора влево сначала используется возврат каретки, а для перемещения вниз по линии - линейная подача. Иногда вы просто используете один или другой для написания специальных символов, таких как подчеркивание или зачеркивание.

CRLF

Компьютеры использовали эту номенклатуру, поскольку она была полезна для взаимодействия с машинами teletype . Поэтому MS-DOS и впоследствии Windows используют CRLF.

LF

Очевидно, что Multics и впоследствии Unix взяли свой ключ из 1963-64 проекта проекта стандартов ISO, который указал, что CRLF или LF могут представлять новую линию, и пошли с одним символом LF.

CR

Я все еще немного озадачен историей принятия CR яблоками. Я смотрю на это... До сих пор, я думаю, что это связано яблоком ранним различением между ввод и возврат клавиши . В первые дни ключ возврата соответствует возврату каретки, а ключ ввода - подаче строки, а не одному ключу «ввода», который выполняет двойную функцию, как в мире Windows. Для пользователей пишущих машинок, которые обычно используют возврат каретки для специального форматирования, это, возможно, имело смысл разделить их, и яблоко фактически использовало ключ возврата для специальных опций форматирования.

Где я не так уверен, как, когда они отказались от этого, они остановились только на использовании CR, но я предполагаю, что это даты этого раннего решения использовать CR для ключа возврата... но я могу ошибаться.

-121--1906228-

Можно использовать fopen для открытия и fwrite для записи в файл. Вы хотите открыть его в режиме добавления, прочитайте руководство, чтобы узнать, что применимо.

Это звучит как странный способ делать вещи.

Я выполняю то, что вы пытаетесь сделать, просто переписав правила, которые проверяют наличие файла:

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [L]

Если файл maintenance.html присутствует, то мой сайт находится в состоянии обслуживания.

12
ответ дан 6 December 2019 в 08:43
поделиться

Я бы настоятельно рекомендовал не писать .htaccess из PHP. Вы должны предоставить пользователю веб-сервера (который традиционно имеет очень низкие привилегии) доступ на запись .htaccess; все, что вам нужно, это один работоспособный скрипт, и злоумышленник может эффективно переконфигурировать ваш сервер.

Для режима обслуживания внутри приложений, необходимо, чтобы PHP сам возвращал страницу обслуживания. При сопровождении самого приложения достаточно просто временно переименовать файл в .htaccess's, чтобы включить перезапись сопровождения.

9
ответ дан 6 December 2019 в 08:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: