Ну можно, даже СДЛ так делают. Вешают скрипт обратного отсчета времени и редиректят с этой промежуточной страницы. Закрыть или роботсом, или по правильному метатегом:
<meta name="robots" content="noindex, nofollow">
Откройте в robots.txt вики для индексации гуглом, а то внутренним инструментом с ошибками сложно искать.
http://pandoraboxx.ru/ упал ("403 Ошибка доступа"), софт не проходит проверку лицензии. Исправьте плиз.
Тут на предыдущей странице обсуждали юзермакрос «OchistkaPerenosov». Поделюсь его расширенной версией, в которой можно задавать любые регулярки для пост-обработки финального кода страницы (раскомментируйте строки нужные). А также предусмотрен метод исключения нужных участков страницы от обработки их макросом {NoOchistkaPerenosov}.. тут участок кода, который не надо трогать..{/NoOchistkaPerenosov} (работает аналогично принципу =nocssrename"]{NOCSSRENAME}{/NOCSSRENAME}:
Спс TopperHarley за наводящие подсказки. Я не кодер, могут быть где-то мелкие недочеты. Код писал на основе найденных в сети примеров на C#.
using System; using System.Text; using System.Text.RegularExpressions; using System.Collections.Generic; namespace PandoraBox { public class OchistkaPerenosov : IPluginMacro { public string Execute(string template, PluginMacroArgs args) { if(template.Contains("html xmlns")) { // Этот участок кода вырезает и запоминает отдельно наши блоки {NoOchistkaPerenosov}...{/NoOchistkaPerenosov}, // то есть они не будут участвовать в процесе "чистки" кода: List<string> OchistkaPerenosovList = new List<string>(); string pattern13 = @"\{NoOchistkaPerenosov\}[\w\W]*\{\/NoOchistkaPerenosov\}"; foreach (Match m in Regex.Matches(template, pattern13, System.Text.RegularExpressions.RegexOptions.Multiline)) OchistkaPerenosovList.Add(m.Value); template = Regex.Replace(template, pattern13, "NoOchistkaPerenosov"); // регулярка ниже заменяет плохие переносы строк (Unix`овые) на нормальные, удаляет и пустые строки: template = Regex.Replace(template, @"[^\S \t]*(\r|\n)[^\S \t]", "\r\n", System.Text.RegularExpressions.RegexOptions.Multiline); // регулярка ниже находит разрыв как раз в тех местах где нет закрывающего HTML тега «>», // то есть во всех «косяках с разрывами строк», которые остаются после макросов рандомизации Пандоры и т.д, // она должна заменить «найденный символ + разрыв» на «найденный символ». Удалите два слеша начале строки, чтобы она заработала, // параметр «…Multiline» означает что надо искать в «многострочном режиме»: //template = Regex.Replace(template, @"([^>])\r\n", "$1", System.Text.RegularExpressions.RegexOptions.Multiline); // регулярка ниже заменяет слова "бесплатно" на "свободно", независимо от рЕгИсТра (параметр «…IgnoreCase»), // а то иногда партнерки не разрешают использовать это слово на сайте, а заменять его в текстовке мне было сложно, //template = Regex.Replace(template, "БЕСПЛАТ", "свобод", System.Text.RegularExpressions.RegexOptions.IgnoreCase); // строка ниже считывает текст из файла Regular_pattern.txt, который в том же каталоге что и PandoraBox.exe // мне это надо было, когда в регулярке пришлось использовать редкие символы, и в код их (как в предыдущих примерах) не вставить: //string Slognaya_Regularka = System.IO.File.ReadAllText(@"Regular_pattern.txt"); // строка ниже прописывает на что будем заменять: //string Na_Chto_Zmenit = "любой текст"; // строка ниже производит такую же замену как и предыдущие аналоги, просто регулярки берет из переменных: //template = Regex.Replace(template, Slognaya_Regularka, Na_Chto_Zmenit); // строка ниже заменяет множественные пробелы одним пробелом: template = Regex.Replace(template, " +", " "); // Этот участок кода возвращает обратно в финальный код наши "вырезанные" блоки {NoOchistkaPerenosov}...{/NoOchistkaPerenosov} int i = 0; string template2 = Regex.Replace(template, "NoOchistkaPerenosov", delegate { return OchistkaPerenosovList[i++]; }); template = Regex.Replace(template2, @"\{\/?NoOchistkaPerenosov\}", ""); // возвращаем уже финальную "подчищенную" версию кода return template; } return template; } public ushort Level { get { return 9; } } public String Name { get { return "OchistkaPerenosov"; } } } }
Накатал себе скрипт-шаблон на ZennoPoster 5. Я в PandoraBox генерю в RAM диск (хватит 1-2 ГБ), скрипт на лету готовые сайты архивирует, архив перемещает на HDD, папку с дором удаляет, так что можно генерить хоть 1000 в пакетке. Потом другой скрипт эти архивы по FTP заливает и по SSH делает распаковку на серваке.
Идею ты понял. Придумай реализацию. Или могу продам свои наработки, если есть зенка.
Можно, но много гемора. Я делал на зеннопстере для дропов. Логика такая:
Если в конце регистрации на странице есть текст под регулярку:
Ошибка:\s+сайт\s+с\s+таким\s+адресом\s+уже\s+зарегистрирован|site\s+with\s+such\s+name\s+is\s+already\s+registered
то идем на страницу "возобновления пароля"
http://www.liveinternet.ru/stat/%7B-Variable.site_url-%7D/index.html?what=reminder;lang=ru
парсим имя файла-тхт какой нам надо залить на сервер.
Конектимся по фтп на свой сайт и заливаем файл-тхт со своей почтой.
На странице "возобновления пароля" вводим эту нашу почту. И старый пароль придет на нее.
Тянем по IMAP старый пароль с нового ящика.
Заходим под старым паролем.
Обнуляем все параметры статистики на наши и меняем пароль.
Как видите процедура сложная. IMAP не у всех одинаково настроен. Разве что на одну почту заставить всех работать. UPD: часть ненужной инфы потерто.
UPD: - подскажи по моему предыдущему вопросу на пару постов выше. Там я и {STAT-n} юзал, тот же ефект.
Дык ты из выдачи и зайди.
макросы {MEM} и {EMEM} работают только в пределах одного файла. Можно их как то глобально использовать в пределах одного генерируемого дора? То есть {MEM-1} я использую в файле template.html, а его результат [MEMRES-1] и в файле template.html, и в style.css.
Хотя вопрос не критичен, есть идеи как реализовать такие задачи через костыли в файле пакетки.
Ну я тогда слабо с регулярками экспериментировал. Теперь уже понимаю, что можно предыдущий код заменить на более универсальный, вроде работает:
using System;using System.Text;using System.Text.RegularExpressions;namespace PandoraBox{ public class OchistkaPerenosov : IPluginMacro { public string Execute(string template, PluginMacroArgs args) { if(template.Contains("html xmlns")) { //заменяем плохие переносы строк (Unix`овые) на нормальные, удаляет и пустые строки: template = Regex.Replace(template, @"[^\S \t]*(\r|\n)[^\S \t]*", "\r\n", System.Text.RegularExpressions.RegexOptions.Multiline); //удаляем множественные пробелы регуляркой: //return Regex.Replace(template, @" +", " "); } return template; } public ushort Level { get { return 9; } } public String Name { get { return "OchistkaPerenosov"; } } }}
Если трудно понять что делает регулярка выше, то поставь там более простую регулярку (ищет от двух классических переносов подряд):
template = Regex.Replace(template, @"(\r\n\){2,}", "\r\n", System.Text.RegularExpressions.RegexOptions.Multiline);
ответ дали в последней строке /ru/forum/comment/15100976