Ребята я конечно вам удивляюсь, столько звездочек у многих, я думал это что то должно значит. Решений на самом деле много, от простых до очень простых. На счет редиректа Serg67 был прав кстати. А вы его заклевали ) Только надо сделать так чтоб /administrator/index.php отзывался на скрипт, а человека игнорировал. Это первое решение. Второе пожалуй самое просто и примитивное. Даже сейчас покажу:
$ua = strtolower($_SERVER['REQUEST_URI']); // определяем страничку
if ( ($ua == '/administrator/' OR $ua == '/administrator/index.php') AND $_GET['En'] != 1 AND $_POST['task'] != 'login' )
// если страничка administrator или administrator/index.php и у нас отсутствует get en или не равен 1 и мы еще не заполнили форму входа
{
header('Location: http://'.$_SERVER['HTTP_HOST'].''); // то делаем редирект обратно на главную страничку сайта
exit;} else { // иначе отправляем на форму входа или админочку
if (file_exists(dirname(__FILE__). '/defines.php')) {
include_once dirname(__FILE__). '/defines.php';
}
if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';
// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;
// Instantiate the application.
$app = JFactory::getApplication('administrator');
// Initialise the application.
$app->initialise(array(
'language' => $app->getUserState('application.lang')
));
// Mark afterIntialise in the profiler.
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
// Route the application.
$app->route();
// Mark afterRoute in the profiler.
JDEBUG ? $_PROFILER->mark('afterRoute') : null;
// Dispatch the application.
$app->dispatch();
// Mark afterDispatch in the profiler.
JDEBUG ? $_PROFILER->mark('afterDispatch') : null;
// Render the application.
$app->render();
// Mark afterRender in the profiler.
JDEBUG ? $_PROFILER->mark('afterRender') : null;
// Return the response.
echo $app;
;}
_______________________________________________________________________________________________
// для входа в админку тогда надо будет набрать сайт.ru/administrator?en=1 условия для входа могут быть различны. Если надо конкретно запуск с другой страницы то можно запускать другой скрипт в котором будет редирект с условием например header('Location: http://'.$_SERVER['HTTP_HOST'].'/administrator?en=1'); и для еще большей надежности вообще запретить посещение administrator человеком через .htaccess . Но это уже параноя, так как реально угадать какие условия для входа в админку нереально. КОД ДЛЯ 2.5 с 1.5 аналогично только её код подставить.
В решении возможно будет выкидывать на главную если нажимать на главную ссылку в админке, которая типа на главную панели управления. Чтоб не выкидывало можно дописать условия. Либо отследить реферер распарсить его и если там есть option= то редирект не делать, а пропускать дальше на главную админки, но лучше конечно же проверить является ли пользователь админом и просто отключить все условия если админ уже в админке для этого можно поюзать например JFactory::getUser();