Nucleus 管理ページを隠す
Nucleusの管理ページを隠す
www.example.com/blog/にNucleusを置くと、管理ページの入り口は defauletでお約束の、http://www.example.com/blog/nucleus/
になる。
これじゃ、Nucleusを
http://www.example.com/blog/
でブログを動かしてるのがわかったら、「入り口はこの下 -> nucleus/」ってバレバレではありませんか。
あんまり危機意識がないと見られるのも困るので、せめて
http://www.example.com/blog/abc0001/index.php
みたいに、見つかりにくいURLにしたいもんだ。
確か、config.phpにディレクトリを指定した場所があったので変更する。
// mySQL connection information
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'sampleadmin';
$MYSQL_PASSWORD = 'sampleadmin';
$MYSQL_DATABASE = 'Nucleus';
$MYSQL_PREFIX = '';
// main nucleus directory
$DIR_NUCLEUS = '/home/example/public/abc0001/'; <- ココ変える
// path to media dir
$DIR_MEDIA = '/home/example/public/media/';
// extra skin files for imported skins
$DIR_SKINS = '/home/example/public/skins/';
// these dirs are normally sub dirs of the nucleus dir, but
// you can redefine them if you wish
$DIR_PLUGINS = $DIR_NUCLEUS . 'plugins/';
$DIR_LANG = $DIR_NUCLEUS . 'language/';
$DIR_LIBS = $DIR_NUCLEUS . 'libs/';
// include libs
include($DIR_LIBS.'globalfunctions.php');
if (!extension_loaded('mbstring')) {
include($DIR_LIBS.'mb_emulator/mb-emulator.php');
}
?>
管理画面にアクセスすると、なんと、画面が崩れてしまった。
ソースを見てみると、
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test001 - Admin</title>
<link rel="stylesheet" title="Nucleus Admin Default" type="text/css" href="http://www.example.com/blog/nucleus/styles/admin.css" />
<link rel="stylesheet" title="Nucleus Admin Default" type="text/css"
href="http://www.example.com/blog/nucleus/styles/addedit.css" />
<script type="text/javascript" src="http://www.example.com/blog/nucleus/javascript/edit.js"></script>
<script type="text/javascript" src="http://www.example.com/blog/nucleus/javascript/admin.js"></script>
<script type="text/javascript" src="http://www.example.com/blog/nucleus/javascript/compatibility.js"></script>
スタイルシートのパスが通っていない。これじゃ崩れるはず。
config.php以外にURLを設定する場所があるらしい。
ファイルのぞいたがすぐには見つからないので、アプローチをかえる。
nucleuのデータベースを見ると nucleus_configが怪しそう。(phpmyadmin)
早速、ここを http://www.example.com/blog/abc0001/に書き換える。
注意:PluginURL http://www.example.com/blog/nucleus/plugins/
も変えないと、プラグインのリストがでなくなる。
これで、
http://www.example.com/blog/abc0001/
にアクセスすると、いつもの管理画面が表示された。
さて、動いたことは動いたんだけど、一応ファイルでも調べておきたいもんだ。
ADMIN.phpにURLを決めている場所があった。
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo _CHARSET ?>" />ほかにも、showlist.phpにあったけど、こっちは見るからにハズレ。
<title><?php echo htmlspecialchars($CONF['SiteName'])?> - Admin</title>
<link rel="stylesheet" title="Nucleus Admin Default" type="text/css" href="<?php echo $baseUrl?>styles/admin.css" />
<link rel="stylesheet" title="Nucleus Admin Default" type="text/css"
href="<?php echo $baseUrl?>styles/addedit.css" />
<script type="text/javascript" src="<?php echo $baseUrl?>javascript/edit.js"></script>
<script type="text/javascript" src="<?php echo $baseUrl?>javascript/admin.js"></script>
<script type="text/javascript" src="<?php echo $baseUrl?>javascript/compatibility.js"></script>
4955: $baseUrl = htmlspecialchars($CONF['AdminURL']); <- これで設定しているようだ
4963: <link rel="stylesheet" title="Nucleus Admin Default" type="text/css" href="<?php echo $baseUrl?>styles/admin.css" />
4964: <link rel="stylesheet" title="Nucleus Admin Default" type="text/css"
4965: href="<?php echo $baseUrl?>styles/addedit.css" />
207: $baseUrl = 'index.php?plugid=' . intval($current->pid) . '&action=';
さらに
ADMIN.phpをみると
<td><input name="AdminURL" tabindex="10040" size="40" value="<?php echo htmlspecialchars($CONF['AdminURL']) ?>" /></td>
これみたい。ここで入力してデータベースに入れているのだ。
なんだ、「グローバル設定」の「管理者領域のURL (最後にスラッシュ "/" を付けてください)」じゃあ、ありませんか。(- -);
というわけで、良い子の皆さんは、最初に「グローバル設定」をやって、次にconfig.phpを書き換えてください。
05 Mar, 2008 | mokimoc
Comments
Leave comments
このアイテムは閲覧専用です。コメントの投稿、投票はできません。