Неправильные URL в Sitemap

Главные вкладки

Аватар пользователя Expier@drupal.org Expier@drupal.org 20 июля 2009 в 11:10

Недавно у меня появилась необходимость запускать планировщик cron. Поискав по этому сайту наткнулся на статью VladSavitsky . В этой статье описано как запустить крон командой. Для этого необходимо внести изменения в сам файл cron.php. Сделав так как описано (ну и слегка поправив до рабочего состояния скрипт) я запустил свой крон. И казалось бы все в порядке, но тут я увидел свой сайтмап... В нем все имена домена были изменены на директории в которых сайт физически находится на сервере.
По этому поводу открыл issue на друпалорге .
Кто что думает по этому поводу? Есть ли возможность запускать cron командой без изменения в файле cron.php? Другие варианты?

Комментарии

Аватар пользователя Expier@drupal.org Expier@drupal.org 20 июля 2009 в 11:16

Незнаю почему но ссылки не вставились. В общем для запуска cron в файле cron.php были сделаны такие изменения:

<?php
$_SERVER
['HTTP_HOST'] = 'www.[my_site].com';
$_SERVER['REMOTE_ADDR'] = '[server_ip]';
$_SERVER['REQUEST_METHOD'] = 'GET';
chdir('/home/[my_folder]/data/www/[my_site].com');
?>

Ответ от разработчиков сайтмапа был такой:
I guess there could be some conflicts with what you set, and the following code executed by Drupal at bootstrap:

<?php
if (isset($base_url)) {
// Parse fixed base URL from settings.php.
$parts = parse_url($base_url);
if (!isset($parts['path'])) {
$parts['path'] = '';
}
$base_path = $parts['path'] . '/';
// Build $base_root (everything until first slash after "scheme://").
$base_root = substr($base_url, 0, strlen($base_url) - strlen($parts['path']));
}
else {
// Create base URL
$base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';

$base_url = $base_root .= '://'. $_SERVER['HTTP_HOST'];

// $_SERVER['SCRIPT_NAME'] can, in contrast to $_SERVER['PHP_SELF'], not
// be modified by a visitor.
if ($dir = trim(dirname($_SERVER['SCRIPT_NAME']), '\,/')) {
$base_path = "/$dir";
$base_url .= $base_path;
$base_path .= '/';
}
else {
$base_path = '/';
}
}
?>

The effect of seeing the directory path in the URL could be caused by changing the current directory.

Вся ветка на друпалорге тут: http://drupal.org/node/523472