Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 18:13

https://concrete5-japan.org/community/forums/usage/post-2602/?

現在このスレッドでのやり方でトップページまでは表示できるのですが、他のページにリンクができない状態です。

なにをいじれば良いのだろう…

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 18:33
Thorさま

下記 URL の投稿は参考になりませんか?

http://www.concrete5.org/community/forums/installation/hide-the-sub-directory-url-in-5.7/#838552
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 18:34
Thorさん。

site.phpのcanonical_urlは、どうなっていますでしょうか?

すみません。canonical_url は関係なさそうです。
 

Re: Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 20:21
Thorさん。


http://concrete5-japan.org/community/forums/usage/post-2602/

家のプアなcentosサーバーで確認したら、concrete5フォルダーのindex.phpに以下の追記したらうまく動きました。
index.phpに追加しましたでしょうか?
C5フォルダーがconcrete5のインストールフォルダーです。


$_SERVER['REDIRECT_URL'] = str_replace('c5/', '', $_SERVER['REDIRECT_URL']);
$_SERVER['ORIG_PATH_INFO'] = str_replace('c5/', '', $_SERVER['ORIG_PATH_INFO']);
$_SERVER['PATH_INFO'] = str_replace('c5/', '', $_SERVER['PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace('c5/', '', $_SERVER['SCRIPT_NAME']);
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 20:45
nipperさん
ご返信ありがとうございます。
英語記事がんばって読み解いてみます!w

にゃんきちさん
ご返信ありがとうございます。


現在の状況をまとめました。

ディレクトリの配置は以下になります。
public_html ┬ conc ┬ .htaccess ②
      │    └ index.php ③
      └ .htaccess ①

ドキュメントルート直下の.htaccess①に


DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

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


上記を記載。

concディレクトリ内の.htaccess②には

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


こちらを記載しています。

そしてindex.php③には

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


こちらを記載しており、現在はトップページは表示されるようになりましたが、
トップページからのリンク先が No input file specified. と表示されております。

気持ち的にはあと一歩かな?とは思っているのですが、あと一歩がどうしてもわからない状況です。

nipperさんが紹介してくれたページも参考にあがいてみます。
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 21:07
Thorさん。

.htaccess②ですが、私が試した時は、プリティーURLの指定をして、以下のRewriteRuleにしています。

RewriteRule . index.php [L]
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月28日 at 21:43
にゃんきちさん

情報ありがとうございます!

一旦環境をリセットしました。
①プリティURLを設定し、.htaccessを作成
②ドキュメントルート直下にも先程と同じ.htaccessを再作成
③index.phpの編集作業

追記しました

ここまでの実施で

http://ドメイン  にてトップページは開けた
http://ドメイン/conc を開くとリダイレクトループ (ちょっと直したい)
各リンク先のURLにはconc/index.php入り (手動で変更する必要がある?)
すべてのリンク先に飛べない状況。
といった感じで変化がみられませんでした。

なにかやり方を間違えているのでしょうか…


追記

URL直打ちでページに飛ぶことはできました
が、内部で動くリンク系はだめっぽいですね

追記
サイト内のリンクがすべて
http://ドメイン
で移動できるようになりました。

画面上から管理画面や画面下部のログインボタンなどをクリックすると、リンク先がindex.phpが含まれているURLになっている
その為、リンク先にてエラーが発生する。何か操作をするたびurlからindex.phpを削除しながらの操作になる
サイトマップ、設定画面など、管理画面内のリンクからindex.phpを消す方法を模索中
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月29日 at 8:06
Thorさん。

システムと設定->SEOと統計->URLとリダイレクト
で、プリティーURLがONになっていますでしょうか?

私のサイトでも、プリティURLを指定しても管理画面ではindex.phpは消えません。

追記:ローカルサーバだとindex.phpは消えるが、レンタルサーバMixHostだと管理画面ではindex.phpが消えていない、何かの設定か???
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月29日 at 12:52
にゃんきちさん

プリティーURLはONにしてあり、.htaccessも編集済です。
管理画面のindex.phpが消えないため、どれを押してもエラーになる状態です。

直下にインストールすればすべてが解決するのかしら……


追記
ページ下のloginボタンを押す→ID,Passを入力しログイン→No input file specified.
No input file specified.が表示されている時のURLにはindex.phpが含まれている。

うーん…


念のため手順の確認
再インストール
・データベース空にする
・元のconcディレクトリ削除
・ドキュメントルート直下の.htaccess削除(他では使っていない)
・concrete5~~~.zip解凍
・concに名前変更
・ブラウザにてドメイン/concにアクセスし、インストール作業実施
 (日本語→続行→項目埋めてインストール)

ここまでではドメイン/conc/で表示。index.phpは表示されている
どこのページも問題なく表示される。

.htaccessとindexphpの編集
・ルートに.htaccessを作成し、以下を記載
DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

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


conc/index.phpを以下に書き換える。
<?php
$_SERVER['REDIRECT_URL'] = str_replace('conc/', '', $_SERVER['REDIRECT_URL']);
$_SERVER['ORIG_PATH_INFO'] = str_replace('conc/', '', $_SERVER['ORIG_PATH_INFO']);
$_SERVER['PATH_INFO'] = str_replace('conc/', '', $_SERVER['PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace('conc/', '', $_SERVER['SCRIPT_NAME']);
require('concrete/dispatcher.php');


conc/.htaccessを作成し以下を記載
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /conc/index.php/$1 [L]


上記終了時の状況
ブラウザを使用してドメイン/concにて接続→リダイレクトループ
ドメインに接続→トップページ表示。アドレスバーはドメイン名のみ表示。ページ内のリンクには/concが含まれるものと含まれないものが混在している。
ダッシュボードへの接続できず。

以下アドレス直打ちにてダッシュボードへの接続
ドメイン/dashboard/welcome (No input file specified.)
ドメイン/conc/dashboard/welcome (No input file specified.)
ドメイン/conc/index.php/dashboard/welcome (404エラー)
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月29日 at 18:10
インストール後、いじった箇所です。

ドキュメントルートのhtaccess


DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

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


.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} /conc/
RewriteRule ^conc/(.*)$ $1 [R]

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


index.php

<?php

$_SERVER['REDIRECT_URL'] = str_replace('conc/', '', $_SERVER['REDIRECT_URL']);
$_SERVER['ORIG_PATH_INFO'] = str_replace('conc/', '', $_SERVER['ORIG_PATH_INFO']);
$_SERVER['PATH_INFO'] = str_replace('conc/', '', $_SERVER['PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace('conc/', '', $_SERVER['SCRIPT_NAME']);

require('concrete/dispatcher.php');


残りはコンフィグとか??
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月29日 at 19:01
Thorさん。

家のcentosでは上記で動いてます。

キャッシュはクリアしましたでしょうか?
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月29日 at 21:49
にゃんきちさん

度々ありがとうございます。
キャッシュの削除は実施しました

試しに別の端末からアクセスしてみましたが、トップ画面しか表示されませんでした。
うーむ…なぜできないのか…
にゃんきちさんができているということは私の方でなにか不備があるのだと思いますが見当がつきません。。
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月30日 at 12:45
Thorさん

契約しているレンタルサーバで確認してみたときの情報です。

* レンタルサーバー MixHost
* サブドメインで確認
* concrete5 8.2.1
*http://サブドメイン/conc でアクセスするとリダイレクトループ

/.htaccess


php_value date.timezone 'Asia/Tokyo'

<IfModule mod_rewrite.c>
DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /conc
RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^conc/ [NC]
RewriteRule ^(.*)$ /conc/$1
</IfModule>


※ php_value date.timezone は、レンタルサーバMixHostでphp.iniが使えないので指定しています。



/conc/index.php


<?php

$_SERVER['REDIRECT_URL'] = str_replace('conc/', '', $_SERVER['REDIRECT_URL']);
$_SERVER['SCRIPT_NAME'] = str_replace('conc/', '', $_SERVER['SCRIPT_NAME']);

require('concrete/dispatcher.php');


※ 記述を減らしているのは、エラーになっていたからです。
[30-Sep-2017 11:47:19 Asia/Tokyo] PHP Notice: Undefined index: ORIG_PATH_INFO in xxxxxxxx
[30-Sep-2017 11:47:19 Asia/Tokyo] PHP Notice: Undefined index: PATH_INFO in xxxxxxxx


/conc/.htaccess


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月30日 at 15:57
にゃんきちさん

度々ありがとうございます。
インストール時にデフォルトのテーマを使用し、.htaccess、conc/.htaccess、conc/index.phpではにゃんきちさんのコードを使用させていただいております。


・トップページのナビゲーションバー(?※添付しました。)からのリンク先がhttp://ドメイン/conc/index.php/〜〜となっていて404エラーになる。
別のページに移動すると、ナビゲーションバーのリンク先はhttp://ドメイン/〜〜に変わり、正常に閲覧ができる。

・ページ最下部のログインボタンを押すと、ログインフォームが表示されるが、ID,パスを入力しログインしようとするとhttp://ドメイン/index.php/dashbord/welcomeを開こうとして「No input file specified.」が表示される。
※これはURLからindex.phpを削除するとページ遷移できるのでログインは可能。

・welcome画面にて、画面右側の管理画面のすべてのリンクがhttp://ドメイン/index.php/dashbord/〜〜になっているため管理画面の操作ができない。
※プリティーURLがうまく動作していない?これらもindex.phpを手動で消すとつながるが、、、

concrete5はドキュメントルート直下に設置することを前提に作られているということなので、解決は難しいでしょうか。上記の解決手段がない。もしくは私の環境でのみ発生するようであれば、サブディレクトリでの運用か、Xserverでの運用のどちらかを諦めようと思います。
※さくらサーバではドメイン毎にドキュメントルートを設定できるので、設定なしで実現できそうです。
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年9月30日 at 21:23
Thorさん。

concrete5側のキャッシュがクリアされていないのではないでしょうか?
index.phpの追加で、concは消えるはずです。
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年10月2日 at 12:21
にゃんきちさん

度々ありがとうございます。
サーバ側のキャッシュの削除でしたか。
エックスサーバは手動でキャッシュ削除が出来ないようなのでキャッシュクリアされるまで待ってみます!
 

Re: Re: URLをインストール先からドキュメントルートに変更したい

2017年10月2日 at 14:11
Thorさん。

レンタルサーバ自身のキャッシュも影響があるかもしれませんが、
先に、concrete5のキャッシュクリアをして確認してください。

システムと設定 -> 最適化 -> キャッシュをクリア
 

Re: URLをインストール先からドキュメントルートに変更したい

2017年10月3日 at 22:53
にゃんきちさん
きました!キャッシュの削除したらできました!!
concrete5もキャッシュ作ってあるんですね。。
解決いたしました!
色々お世話になりました。ありがとうございます!