SOY CMSのユーザから下記のような質問がありました。
SOY CMSでサイトを作る時、サイトIDをhogeにして、https://example.com/hogeのようなURLのサイトを作成するが、https://example.com/hoge/huga のようにもう一つ下の階層のサイトを作成することはできませんか?
今回の記事では上記の質問に対応した時の内容を残しておく。
SOY CMSをインストールするディレクトリは /var/www/html にして話を進める。
ドメインは、example.com
最初にサイトを作成する。
この時のサイトIDは hoge か huga にしておく。
今回は hoge で作成した。
ディレクトリ構造は
$ tree -a /var/www/html/hoge hoge ├── .cache ├── .db ├── .entry_template ├── .htaccess ├── .plugin ├── .template ├── css ├── files ├── im.php ├── image ├── index.php └── js
このようになる。
hogeディレクトリと各ディレクトリやファイルの間にhugaを設け、
$ tree -a /var/www/html/hoge hoge └── huga ├── .cache ├── .db ├── .entry_template ├── .htaccess ├── .plugin ├── .template ├── css ├── files ├── im.php ├── image ├── index.php └── js
のようにする。
次にSiteテーブルがあるデータベースを開く。
SQLite版であれば、/var/www/html/CMSインストールディレクトリ/common/db/cms.db
MySQLはご自身で作成されたデータベース
Siteテーブルのurlとpathの値を下記のように変更する。
※SETに入れる値は各自の環境に合わせて適宜変更してください
mysql> UPDATE Site SET url = 'http://example.com/hoge/huga/' WHERE site_id = 'hoge'; mysql> UPDATE Site SET path = '/var/www/html/hoge/huga/' WHERE site_id = 'hoge';
※どちらのカラムの変更も末尾に増やしたディレクトリ名 + /を追加している
最後に/var/www/html/hoge/huga/.htaccessを変更する。
RewriteEngine on RewriteBase /hoge
を
RewriteEngine on RewriteBase /hoge/huga
すでに稼働していたサイトを今回の手順でサイトURLを変更する場合は、今回の手順に従って変更した後、SOY CMSの管理画面で下記の操作を行う必要がある。
ようこそSOY CMSへの画面(管理画面にログイン直後のサイト一覧が表示されているページ)でサイト一覧を開き、
対象となるサイトの詳細を開く。
サイトURLの入力内容が意図通りであっても、変更ボタンを押す。
これで、サイト側のデータベースに登録されているサイトURLを入力されている内容に変更することができる。
これで手続きは終了。
不足している内容があり次第、当記事は更新します。