質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

1485閲覧

CakePHPアプリにXserverのドメイン名でアクセスしたい

poppin514

総合スコア10

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2019/01/10 15:52

編集2019/01/11 04:48

前提・実現したいこと

XserverにおいてCakePHPを使用して作成したアプリを公開しています。

example.xsrv.jp/(プロジェクト名)

でアクセスすると表示されるページに対し、

example.xsrv.jp

でアクセスして表示させたいと考え、
.htaccessに以下を追記することでexample.xsrv.jpでアプリにアクセス出来るようになりました。

RewriteEngine on RewriteCond %{REQUEST_URI} !/app RewriteRule ^(.*)$ app/$1 [L]

しかし、ページ内のリンクで別アクションのページに飛ぶと、

example.xsrv.jp/(プロジェクト名)/(controller)/(action)

に戻ってしまいます。

どうにかアプリ内の別アクションのページにおいても、

example.xsrv.jp/(controller)/(action)

のような形でアクセスさせることは出来ないでしょうか。

試したこと

config/route.phpの編集によりルーティングの設定ができることは確認済みですが、

(ドメインorIPアドレス)/(プロジェクト名)/(controller)/(action)

で表現されるURLのうち、

(controller)/(action)

の部分の設定ができるのみであると認識しております。

CakePHPの他の設定もしくはXserverの設定でプロジェクト名部分の省略はできますでしょうか。

補足情報(FW/ツールのバージョンなど)

CakePHP3.6.12を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/11 02:09

sample.xsrv.jpというのは質問者さんが実際に利用されているドメインでしょうか。 そうでなければ例示ドメイン(example.comなど)をお使いください。 また、CakePHPであれば.htaccessではなくルーティングの設定で対応するものかと思います。 元々の作りを見直された方が賢明かと思います。
poppin514

2019/01/11 04:54

修正点のご指摘ありがとうございます。 ドメイン部分の修正と他部分の追記修正を行いました。 試したことの欄に追記した通り、CakePHPのルーティングの設定でプロジェクト名部分の省略の対応はできないのではないか、と認識しております。 この認識が誤っている、また、CakePHPの他の設定もしくはXserverの設定でプロジェクト名部分の省略の対応を行う手段があればご指摘いただければ幸いです。
m.ts10806

2019/01/11 06:52

プロジェクト名とはcomposerでcreate-projectする際に指定する名称でしょうか?CakePHPではwebrootディレクトリをDocumentRootに設定するはずですし、そこにプロジェクト名は介在しないような・・・?というかプロジェクト名がURLに必要なフレームワークってあまり聞いたことないですね。 バージョンは違うようですが、teratailもCakePHPで作られていますし、URLにプロジェクト名はないですよね。わざわざリダイレクトを設定しているようにも思えません。 すぐにCakePHP試せる環境が手元にないので実際に検証はできませんが、ドキュメントを読んだ限りではプロジェクト名は関係ないような・・?
poppin514

2019/01/11 12:07

自己解決の欄に記したとおり、プロジェクトのディレクトリをドキュメントルートにまるごと置いてしまったことが原因でした。 混乱させてしまったこと、またお手数をお掛けしたことをお詫び申し上げます。
guest

回答1

0

自己解決

ローカルで開発を行ったプロジェクトをまるごとドキュメントルートへ置いたのが原因でした。
セキュリティ面を考慮しても推薦されない手法であったと分かり自省しております。

こちらを参考にしてwebrootの中身をドキュメントルートへ移動し、他を切り出すことで無事目的を果たすことが出来ました。

初めてのWebアプリ開発で手探りで進めていた状態でしたが、公式ドキュメントをよりしっかり読み込むことで避けられた課題であったとこちらも自省しております。
今後は出来る限り自身で試行錯誤を進めた後に質問をしたいと思います。
お手数をお掛けしまして申し訳ありませんでした。

投稿2019/01/11 12:06

poppin514

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問