■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

カテゴリ名出力先のリンクがおかしい

haluna > カテゴリ名出力先のリンクがおかしい @ 2014/2/11 22:11
ブログ作成中です。

記事が属するカテゴリ名を出力する文、
<?php $this->Blog->category($post) ?>を記述すると
リンク先にサブフォルダ名が入ってしまいます。

http://ドメイン.jp/baser/baser/news/archives/category/releaseとなりエラーになります。
正しくは
http://ドメイン.jp/baser/news/archives/category/release となってほしい。

タグ名を出力<?php $this->Blog->tag($post) ?>の場合、
http://ドメイン.jp/baser/news/archives/tag/新製品
と出力され、特に問題ありません。

どこを直したらいいのでしょうか・・・?
どうか御教示お願いします。


■ BaserCMSのバージョン: 3.0.1
■ レンタルサーバー名:heteml
■ スマートURLの利用: [ON]
■ 設置フォルダ: [サブフォルダ]
■ 利用しているデータベース: [SQLite]
■ PHPスキル(自己評価): [ D ]
goichi > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/12 17:31
こんにちは。
自分のヘテムルでは正常に出来ているのですが、独自ドメインでないので、独自ドメインを利用すると起きるのかもしれません。
とりあえず、ヘルパーを見てみたら、カテゴリ名の出力関数と、タグの出力関数では、URL出力の方法が違うようでした。今回、halunaさんの環境で、2つの関数が出力するURLに差異が出たのは、そのためだと思います。
簡単にしか追いかけていないのですが、カテゴリ名とともに出力するURLは、baseUrl()というCakePHPの設置されたURLを取得する関数がベースに使われていて、もしかしたら、このbaseUrl()が必要ないサブフォルダ(/baser/)まで引っ張ってきているのではないかと思います。
baseUrl()に関しては、mod_rewrite(スマートURLなどで利用)を使う際の注意として、こんな記事もあるみたいです(バージョンが違いうので該当しないかもしれませんが)。

ちなみにスマートURLをOFFにしても、同様の問題が起きるでしょうか?
haluna > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/12 22:06
いつも回答ありがとうございます<(_ _*)>

app/config/core.php内のApp.baseUrlは
Configure::write('App.baseUrl', $_SERVER['SCRIPT_NAME']);
となっていて特に問題はないようです。

hetemlのサブフォルダでスマートURLをOFFにできますか!?;゚Д゚)
私も独自ドメインではありません。http://xxxxxx.heteml.jp/baser/です。
インストールは出来るのですが、ダッシュボードに移動するとcssや画像がリンク切れになるので、手動でスマートURLをONにしてます。
スマートURLをOFFにすると再びcssや画像がリンク切れになるので、スマートURLのOFFは諦めていました。

根本的になにかが違うような気がします・・・
スマートURLをオフにしても動作する方法を探してみます。。




goichi > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/12 23:05
引用:
私も独自ドメインではありません。http://xxxxxx.heteml.jp/baser/です。

うーん、そうなるとインストール時点で何か上手く行っていないのかも知れませんね・・・。
ヘテムルならば簡単インストールでインストールできると思いますが、インストールは簡単インストールでしょうか?

また、前述のbaseUrlですが、スマートURLをONの状態で、
/app/Config/install.php
の中に
Configure::write('App.baseUrl', '');

という記述があると思います。例えばここが、
Configure::write('App.baseUrl', '/baser/');

みたいになっているという事はないでしょうか?
haluna > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/13 0:34
度々すみません・・・

/app/Config/install.phpはこれで合っています。
Configure::write('App.baseUrl', '');



RewriteEngine on
RewriteBase /baser
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

このRewrite設定でスマートURLが動きます。
(システム管理のスマートURL欄には「Rewriteモジュール利用可否: 不明」と表示されますが・・・)

【v3.0.0】step5でcssが効かない
このスレッドと同様の状況だと思います。
(私はGithubの差分をDLしましたが改善しませんでした。)

スマートURLがONで動くので、とりあえず様子見しようと思います。

お手数おかけして本当に申し訳ありません・・

追記:インストールは手動でアップしてます
(webroot ディレクトリをトップにしています⇒ドキュメントルートについて
goichi > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/13 15:43
どうもです。
引用:
インストールは手動でアップしてます

なるほど、例えばPHPのバージョンとかどうなっているでしょうか? ヘテムルだと複数選べるはずです。
例えば、PHPの選択も含めて.htaccessに以下のように記述すると、どうなるでしょうか?

/baser/.htaccess (インストールフォルダ直下の.htaccess)
AddHandler php5.4-script .php
MultiviewsMatch Any


RewriteEngine on
RewriteBase /baser
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]


/baser/app/webroot/.htaccess
Allow from all

RewriteEngine on
RewriteBase /baser/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]


上記が私の環境で書いてある.htaccessの中身です(サブフォルダ名はbaserにしておきました)。
なお、「MultiviewsMatch Any」については、スマホ対応時にヘテムルで必要になるようなので書いてあります。PHPは5.4を選択した状態です。


haluna > Re: カテゴリ名出力先のリンクがおかしい @ 2014/2/13 22:42
できましたーーーヾ(*´∀`*)ノ

スマートURLをオン⇔オフに切り替えても画像やcssは崩れません。
カテゴリー名リンク先も正常です。

今回変更したのは
・DLしたbaserCMS3.0.1をそのままインストール。(今までwebrootを上の階層にしてた。ドキュメントルートについて
・htaccessを指示通り記述。
 ⇒MultiviewsMatch Anyを記述。
 ⇒AddHandler php5.4-script .phpを記述(これは何度か試したことがあるので、これはあまり関係ないかな・・)


webrootを上の階層にしてたのが原因だったようですね・・・。
マニュアルにも書いてあるので大丈夫かと思ってたのですが、サブフォルダには合わないみたいですね。

これからもbaserCMSを使っていこうと思うので、良い勉強になりました。
goichiさん、本当にありがとうございました。感謝!
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
50 人のユーザが現在オンラインです。 (49 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 50