バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

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

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


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

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

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


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

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

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


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,687名です
総投稿数は109,932件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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