Функция Generators () ничего не возвращает. Попробуйте
function generators() {
var mix = document.getElementById("userInput").value;
for (var i = 0; i < mix; i++) {
if (document.getElementById("quoteChoice").value === '1') {
return generatorOne();
} else if (document.getElementById("quoteChoice").value === '2') {
return generatorTwo();
}
}
}
Вы можете использовать переменную REMOTE_ADDR в RewriteCond
RewriteCond %{REMOTE_ADDR} !^10\.0\.1\.1$
RewriteRule ^ /maintenance.html
Просто измените условие, чтобы оно соответствовало нужным IP-адресам, для более чем одного вы можете использовать ^ (ip1 | ip2 | ... | ipn) $.
О том, как отключить режим обслуживания без изменения файла .htaccess, я думаю, что это невозможно, если не написать программу, которая удаляла бы ее или иным образом изменяла ее, проще всего было бы ее переименовать.
Маленькое улучшение ответа Alexander, не необходимо использовать регулярное выражение для IP-адреса.
RewriteCond %{REMOTE_ADDR} !10.0.0.1
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [R=302,L]
вы можете включить это состояние и отключить его через некоторый интерфейс администратора, который может записывать в .htaccess (например, разрешения установлены на 755 или 777). он просто всегда находил .htaccess, вставлял эти две строки в начало и при отключении обслуживания удалял эти две строки, оставляя остальную часть файла нетронутой