Как вы перенаправляете псевдоним в назначенное время?
Я использую Drupal 7(.40 или .41), и я пытаюсь добиться того, чтобы полностью изменить содержимое страниц в определенное время и дату (00:00:01 01/01/2016, если быть точным)
Поскольку изменение содержимого составляет около 90 % страницы, я предположил, что могу установить неопубликованный узел в 23:59:59 с псевдонимом, а затем опубликовать новый узел в 00:00:01 с тем же псевдонимом. Однако это вызывает используется псевдоним ошибка.
Там ничего нет очевидно, что в моей конфигурации псевдонима URL (/admin/config/search/path
) это указывает на то, что это возможно, поэтому я, вероятно, смотрю на это неправильно, если не использовать другой URL.
Мысли и методы будут приветствоваться.
2 answers
Я бы использовал для этого модуль Правила. Но вы не можете "полагаться" на планировщик правил в этом случае, если вы хотите, чтобы перенаправление начиналось с 00:00:01 01/01/2016
(sharp).
Перенаправление старого пути на новый путь
Вот правило, которое вам понадобится для этого (в формате экспорта правил просто используйте copy/past, чтобы импортировать его в свою собственную настройку):
{ "rules_redirect_an_alias_at_a_scheduled_time" : {
"LABEL" : "Redirect an alias at a scheduled time",
"PLUGIN" : "reaction rule",
"ACTIVE" : false,
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "AND" : [
{ "text_matches" : { "text" : [ "site:current-page:url" ], "match" : "the_old_path" } },
{ "data_is" : {
"data" : [ "site:current-date" ],
"op" : "\u003E",
"value" : 1451602800
}
}
]
}
],
"DO" : [
{ "drupal_message" : { "message" : "Please note that the old path (= the_old_path) is no longer in use, you will be redirected automatically to its corresponding path (= the_new_path)" } },
{ "redirect" : { "url" : "the_new_path" } }
]
}
}
Еще несколько настроек, чтобы это соответствовало вашему точному сценарию:
- измените все случаи
the_old_path
на путь, который будет использоваться до00:00:00 01/01/2016
. - измените все вхождения
the_new_path
на путь, который будет использоваться , начиная с00:00:01 01/01/2016
.
Всякий раз, когда такое перенаправление действительно происходит, пользователь также получит информационное сообщение, подобное следующему:
Пожалуйста, обратите внимание, что старый путь (=
/the_old_path
) больше не используется, вы будете автоматически перенаправлены на соответствующий путь (=/the_new_path
)
Если вы не хотите, чтобы такое сообщение появлялось, затем просто удалите строку, содержащую drupal_message
в экспортированном правиле выше.
Внимание: в этом экспортированном правиле используется время UTC... если ваш вопрос касается другого часового пояса, не забудьте также изменить значение 1451602800
в соответствии с вашими потребностями.
Перенаправление нового пути на старый путь
Если вы не хотите, чтобы новый путь отображался еще ДО 00:00:01 01/01/2016
, просто создайте аналогичное правило, подобное предыдущему, в котором вы меняете местами the_old_path
и the_new_path
, и отмените тест на site:current-date
.
Вам нужно установить правила , которые запланируют публикацию узла в определенное время после запуска cron, он будет автоматически опубликован.