バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (49 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 67
もっと...

サイト内検索

質問 > フロント機能 > URLに末尾スラッシュがあるかないかでエラーになってしまいます。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ryoharada
投稿日時: 2019/5/27 10:47
対応状況: 解決済
半人前
登録日: 2019/5/17
居住地:
投稿: 14
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) }}に書き換え
468
投稿日時: 2019/5/27 10:56
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1818
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。
・新規作成したページのURLからuser_data/をなくす
の対応でFrontControllerProvider.phpに追加したルーティングが原因ではないでしょうか?

「ページが見つかりません」と表示された時、
追加したルーティングのルールが意図せず一致してしまい、
UserDataController::indexが処理されているのではないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

ryoharada
投稿日時: 2019/5/27 11:58
対応状況: −−−
半人前
登録日: 2019/5/17
居住地:
投稿: 14
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/28 9:43
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1818
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。
インストールしただけのECCUBEで確認してみましたが、
商品詳細ページや会員登録ページ等、最後にスラッシュが入力されていると
「ページがみつかりません。」のエラーとなります。
それが標準的な動きかと思うのですが(ルーティングルールがスラッシュを区切り文字として判定しているからだと思うのですが)
それを解決したいという事でしょうか?

>htaccessなどでスラッシュなしにリダイレクトさせたほうが良いのでしょうか?
私は気にしたことが無かった為、リダイレクトさせた方が良いかどうかは判断致しかねます。
今までにそこまで対応した事は無いです。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

ryoharada
投稿日時: 2019/5/28 10:02
対応状況: −−−
半人前
登録日: 2019/5/17
居住地:
投稿: 14
Re: URLに末尾スラッシュがあるかないかでエラーになってしまいます。
ご返信ありがとうございます。

デフォルトでそのようになる仕様だったのですね!
それでしたら、そのままで行こうかと思います。
ご教授ありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,610名です
総投稿数は93,193件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1968
4
468
1818
5
yuh
1602
6
red
1343
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.