質問 > フロント機能 > URLに末尾スラッシュがあるかないかでエラーになってしまいます。 |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ryoharada |
投稿日時: 2019/5/28 10:02
対応状況: −−−
|
半人前 登録日: 2019/5/17 居住地: 投稿: 15 |
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。 ご返信ありがとうございます。
デフォルトでそのようになる仕様だったのですね! それでしたら、そのままで行こうかと思います。 ご教授ありがとうございました! |
468 |
投稿日時: 2019/5/28 9:43
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。 インストールしただけのECCUBEで確認してみましたが、
商品詳細ページや会員登録ページ等、最後にスラッシュが入力されていると 「ページがみつかりません。」のエラーとなります。 それが標準的な動きかと思うのですが(ルーティングルールがスラッシュを区切り文字として判定しているからだと思うのですが) それを解決したいという事でしょうか? >htaccessなどでスラッシュなしにリダイレクトさせたほうが良いのでしょうか? 私は気にしたことが無かった為、リダイレクトさせた方が良いかどうかは判断致しかねます。 今までにそこまで対応した事は無いです。
|
ryoharada |
投稿日時: 2019/5/27 11:58
対応状況: −−−
|
半人前 登録日: 2019/5/17 居住地: 投稿: 15 |
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。 ご返信ありがとうございます。
FrontControllerProvider.phpの $c->match('/' . '/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data');を $c->match('/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data');に 変更してみたところ、トップページはスラッシュありでアクセスした場合でもスラッシュなしにリダイレクトされるようになりました。 しかしトップページ以外は依然としてエラーになってしまいます・・・。 htaccessなどでスラッシュなしにリダイレクトさせたほうが良いのでしょうか? |
468 |
投稿日時: 2019/5/27 10:56
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。 ・新規作成したページのURLからuser_data/をなくす
の対応でFrontControllerProvider.phpに追加したルーティングが原因ではないでしょうか? 「ページが見つかりません」と表示された時、 追加したルーティングのルールが意図せず一致してしまい、 UserDataController::indexが処理されているのではないでしょうか?
|
ryoharada |
投稿日時: 2019/5/27 10:47
対応状況: 解決済
|
半人前 登録日: 2019/5/17 居住地: 投稿: 15 |
URLに末尾スラッシュがあるかないかでエラーになってしまいます。 ▼テンプレート
[EC-CUBE] 3.0.17 [レンタルサーバ] ロリポップ [OS] Mac OS X 10.13.6 [PHP] 7.1.5 [データベース] MySQL 5.6.23-log [WEBサーバ] Apache [ブラウザ] chrome [現象] EC-cubeをインストールするにあたり、 ・URLからhtml/をなくす(例:https://www.example.com/html/ → https://www.example.com/) ・新規作成したページのURLからuser_data/をなくす の2点のカスタマイズを行なっております。 その修正を加えた時点からだと思うのですが、 ECサイトおよび管理画面の両方で、末尾スラッシュをつけた状態でアクセスすると 「ページが見つかりません」というページに飛ばされるようになってしまいました。 ※管理画面のトップページに限っては逆にスラッシュがない状態でアクセスするとエラーになります。 何も修正を加えずEC cubeをインストールした場合はスラッシュあるなしに関わらず、スラッシュなしのページにリダイレクトされる仕様になっていたかと存じておりますが、やはり先述した修正を行なったことが原因でしょうか? 解決策などご教授していただければ幸いです。 ______________________________ ちなみに、加えた修正の具体的な内容は以下の通りです。 <html/の件> こちらのやり方で進めました↓ https://doc.ec-cube.net/quickstart_remove-html <user_data/の件> ・FrontControllerProvider.phpの41行目辺りの $c->match('/'.$app['config']['user_data_route'].'/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '([0-9a-zA-Z_\-]+\/?)+(?<!\/)')->bind('user_data'); をコメントアウト ↓ ・FrontControllerProvider.phpの最後の方にあるreturn $c;の直前に $c->match('/' . '/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data'); を追加 ↓ ・管理画面の新規ページ追加の画面でURLの欄からuser_data/を非表示にするために、 app/template/admin/Content/page_edit.twigの59行目あたり {{ url('top') }}{{ app.config.user_data_route }}/{{ form_widget(form.url) }}を {{ url('homepage') }}{{ form_widget(form.url) }}に書き換え |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |