Re: ログイン画面のURLを変更する方法
2014年12月10日 at 21:01
動くのかもしれないですけど、ちょっと…違う方法を考えてみます。
Re: ログイン画面のURLを変更する方法
2014年12月10日 at 21:28
あ、入れ違いで投稿してしまいました。元の投稿は、DBを直接書き換えていると言うことと、もし問題があった時に戻しにくいというのがちょっとなと思いました。下記の方法であれば、すぐに戻すことができます。
Re: ログイン画面のURLを変更する方法
2014年12月10日 at 21:26
1. /custom_login の作成
/concrete/core/controllers/login.php を
/controllers/custom_login.php にコピー
class Concrete5_Controller_Login を
class CustomLoginController に変更
コード内の /login を /custom_login に変更
/concrete/single_pages/login.php を
/single_pages/custom_login.php にコピー
こちらは内容変更無しでいけると思います
2. シングルページの追加
管理画面のシングルページのページから、custom_loginを追加してください。
3. /custom_login のテーマを変更
/config/site_theme_paths.php を開く
このファイルがシングルページのテーマ変更用のファイルです。オーバーライドできるのですが、ファイル名が違うので注意なのです
下記を追記してください
$v = View::getInstance();
$v->setThemeByPath('/custom_login', VIEW_CORE_THEME);
4. /login の無効化(オーバーライド)
/controllers/login.php を作成
中身をコレにしてください。アクセスするとトップページにリダイレクトします
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class LoginController extends Controller {
public function view(){
$this->redirect('/');
}
public function logout() {
$this->redirect('/custom_login/logout');
}
}
で、自分はどうしてるかという話ですが、ログインURLを隠すことが必要な案件の場合は、 LoginController をオーバーライドして処理を加えて、特定のハッシュがURLパラメーターに付加されていないとトップページにリダイレクト、にしています。ハッシュはconfig/site.phpに保存しておくと、運用中にログインURLを定期的に変えることも可能です。
/concrete/core/controllers/login.php を
/controllers/custom_login.php にコピー
class Concrete5_Controller_Login を
class CustomLoginController に変更
コード内の /login を /custom_login に変更
/concrete/single_pages/login.php を
/single_pages/custom_login.php にコピー
こちらは内容変更無しでいけると思います
2. シングルページの追加
管理画面のシングルページのページから、custom_loginを追加してください。
3. /custom_login のテーマを変更
/config/site_theme_paths.php を開く
このファイルがシングルページのテーマ変更用のファイルです。オーバーライドできるのですが、ファイル名が違うので注意なのです
下記を追記してください
$v = View::getInstance();
$v->setThemeByPath('/custom_login', VIEW_CORE_THEME);
4. /login の無効化(オーバーライド)
/controllers/login.php を作成
中身をコレにしてください。アクセスするとトップページにリダイレクトします
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class LoginController extends Controller {
public function view(){
$this->redirect('/');
}
public function logout() {
$this->redirect('/custom_login/logout');
}
}
で、自分はどうしてるかという話ですが、ログインURLを隠すことが必要な案件の場合は、 LoginController をオーバーライドして処理を加えて、特定のハッシュがURLパラメーターに付加されていないとトップページにリダイレクト、にしています。ハッシュはconfig/site.phpに保存しておくと、運用中にログインURLを定期的に変えることも可能です。
Your post has been saved and will be published after approval by the forum moderator.
多摩勉強会/遠藤
Re: ログイン画面のURLを変更する方法
有り難うございます。
サーバ側の設定(RewriteRuleなど)で対処する方法などでも構いませんので、
良い(よりスタンダードな)方法があれば、展開頂けると幸いです。