下層ディレクトリー(フォルダー)でテストして、ファイルを動かさずにルートで公開

2011年6月15日 at 15:30

参考までに。本家のチュートリアルページに、ドイツのユーザーさんが為になるチュートリアルを掲載していました。

翻訳している時間がないので、簡単な説明のみ。だれか、フォローしてください〜。



サーバーで「concrete5.4.1.1」というフォルダーの中にconcrete5、全てのファイルを保存しても、あたかも、サイトのルートで公開されているように騙す方法です。

例)
■ 実際の concrete5 保存先
http://EXAMPLE.COM/concrete5.4.1.1/

■ ユーザーがアクセスするURI
http://EXAMPLE.COM/

このように、FTPの中で、ルートディレクトリは「concrete5.4.1.1」というフォルダーだけしか見えておらず、他にも html ファイルやディレクトリーを作って公開したい人向け

注意:ただし concrete5 で使用しているディレクトリー名「blocks」や「package」等のディレクトリー名や、concrete5 サイトで使用しているページ名を使うと concrete5 が壊れてしまうので注意。

リンク先の方法は、/concrete5.4.1.1/ フォルダーでテスト運用をして、公開するときに、ファイルを動かさずに、サイトルートで公開できる方法です。



.htaccess を、サイトルートと「concrete5.4.1.1」フォルダーに
index.php と /config/site.php を変更する方法です。

ただし、サーバーによっては完全にサポートしていないところがあります。さくらインターネットさんがこの方法できないような気がします(誰か確認して〜。後日、確認できたら個々の文章を修正します。)

http://www.concrete5.org/documentation/how-tos/designers/install-concrete5-invisible-over-an-existing-website/

サーバー上で他のディレクトリーやファイルがあって、整理をしたい人向けです。

基本的に「concrete5.4.1.1」という部分を、自分の好きなディレクトリー名に変えるだけでいいでしょう。

/.htaccess の例

DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^concrete5.4.1.1/ [NC]
RewriteRule ^(.*)$ /concrete5.4.1.1/$1


/concrete5.4.1.1/.htacess の例

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /concrete5.4.1.1/index.php/$1 [L]


/concrete5.4.1.1/index.php をこれに改造

<?php
$_SERVER['REDIRECT_URL'] = str_replace('concrete5.4.1.1/', '', $_SERVER['REDIRECT_URL']);
$_SERVER['ORIG_PATH_INFO'] = str_replace('concrete5.4.1.1/', '', $_SERVER['ORIG_PATH_INFO']);
$_SERVER['PATH_INFO'] = str_replace('concrete5.4.1.1/', '', $_SERVER['PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace('concrete5.4.1.1/', '', $_SERVER['SCRIPT_NAME']);
require('concrete/dispatcher.php');


/concrete5.4.1.1/config/site.php の

define('DIR_REL', 'concrete5.4.1.1');




define('DIR_REL', '');


に変更し、

define('SERVER_PATH_VARIABLE','REDIRECT_URL');


の1行を加える

例:

define('DB_SERVER', '【MYSQLアドレス】');
define('DB_USERNAME', '【MYSQLユーザー】');
define('DB_PASSWORD', '【MYSQLパスワード】');
define('DB_DATABASE', '【MYSQLデータベース名】');
define('BASE_URL', '【URL】');
define('DIR_REL', '');
define('SERVER_PATH_VARIABLE','REDIRECT_URL');
define('PASSWORD_SALT', '【ごちゃごちゃした文字列】');


てな具合になります。「DIR_REL」と「SERVER_PATH_VARIABLE」という文章を加えました。

Re: 下層ディレクトリー(フォルダー)でテストして、ファイルを動かさずにルートで公開

2016年10月18日 at 15:12
参考にさせていただきました。
http://concrete5-japan.org/community/forums/5-7-x/post-10739/
こちらのページも参考に、 さくらサーバーで設定してみましたら
(htaccessをルートとconcreteフォルダに設置するやり方の方で)

ドメインでの表示ができました