トップページがnotfoundになる 投稿する
投稿者:Huckle Berry
投稿日時:2024-02-01 11:27:35
soyoshop2.9.4
phpバージョン 7.4.33
サイトIDを変更したところ、
トップページがnotfoundになってしまいました。
ドメイン/〇〇/
がトップページなのですが、
404notfoundのページを作成しているので、そちらが表示されてしまいます。
404notfoundページを削除すると、
こちらのエラーが表示されます。
サイトID を変更する際、データベースも修正しました。
phpバージョン 7.4.33
サイトIDを変更したところ、
トップページがnotfoundになってしまいました。
ドメイン/〇〇/
がトップページなのですが、
404notfoundのページを作成しているので、そちらが表示されてしまいます。
404notfoundページを削除すると、
Fatal error: Uncaught TypeError: Argument 1 passed to output_page() must be an instance of WebPage, null given, called in /home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php on line 105 and defined in /home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/controller/output.php:37 Stack trace: #0
/home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php(105): output_page(NULL) #1
/home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php(69): SOYShopSiteController->_onNotFound(Object(Exception)) #2 /home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/lib/soy2_build.php(236):
SOYShopSiteController->execute() #3 /home/xxxx/xxxxxxx.com//public_html/outlet/index.php(10): SOY2PageController::run() #4 {main} thrown in /home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/controller/output.php on line 37
こちらのエラーが表示されます。
サイトID を変更する際、データベースも修正しました。
投稿者:齋藤毅
投稿日時:2024-02-01 12:13:07
の105行目にあります/home/xxxx/xxxxxxx.com//public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php
output_page(common_process_before_output(soyshop_get_page_object_by_uri(SOYSHOP_404_PAGE_MARKER), array()));
を
$webPage = common_process_before_output(soyshop_get_page_object_by_uri(SOYSHOP_404_PAGE_MARKER), array());
if(!is_null(webPage)) output_page($webPage);
に変更してください。
その後にすぐ近くの行の
private function _onNotFound(Exception $e){
を
private function _onNotFound(Exception $e){
var_dump($e);
に変更した後にトップページを開くとエラーメッセージが変わるはずです。
新たに変更されたエラーメッセージをお伝えください。
投稿者:Huckle Berry
投稿日時:2024-02-01 15:01:44
ありがとうございます。
こちらが表示されました。
こちらが表示されました。
object(Exception)#93 (7) { ["message":protected]=> string(26) "this page is 404 notfound." ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(107)
"/home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php" ["line":protected]=> int(68) ["trace":"Exception":private]=> array(2) { [0]=> array(6) { ["file"]=> string(85)
"/home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/lib/soy2_build.php" ["line"]=> int(236) ["function"]=> string(7) "execute" ["class"]=> string(21) "SOYShopSiteController" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [1]=> array(6) { ["file"]=> string(64) "/home/xxxx/xxxxxxx.com/public_html/outlet/index.php" ["line"]=> int(10) ["function"]=> string(3) "run" ["class"]=> string(18) "SOY2PageController" ["type"]=> string(2) "::" ["args"]=> array(0) { } } } ["previous":"Exception":private]=> NULL }
Warning: Use of undefined constant webPage - assumed 'webPage' (this will throw an Error in a future version of PHP) in /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php on line 107
Fatal error: Uncaught TypeError: Argument 1 passed to output_page() must be an instance of WebPage, null given, called in /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php on line 107 and defined in /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/controller/output.php:37 Stack trace: #0
/home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php(107): output_page(NULL) #1 /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php(69): SOYShopSiteController->_onNotFound(Object(Exception)) #2 /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/lib/soy2_build.php(236):
SOYShopSiteController->execute() #3 /home/xxxx/xxxxxxx.com/public_html/outlet/index.php(10): SOY2PageController::run() #4 {main} thrown in /home/xxxx/xxxxxxx.com/public_html/cms/soyshop/webapp/src/base/controller/output.php on line 37
投稿者:齋藤毅
投稿日時:2024-02-01 15:58:09
上記のエラーですが、単純に指定したページが存在していない時に表示されるエラーになりまして、PHPのエラーではなくSOY Shopが意図的にエラーにしたものです。this page is 404 notfound.
とありますが、サイトIDの変更の手順に誤りがあるかもしれません。サイトIDを変更したところ、トップページがnotfoundになってしまいました。
サイトIDの変更は何処かを参考にして行ったという事はありますか?
もし参考にしたページがあればお伝えください。
投稿者:Huckle Berry
投稿日時:2024-02-01 16:03:56
https://saitodev.co/article/SOY_Shop%E3%81%AEURL%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95/
こちらで変更いたしました。
その後、ようこそSOY CMSへ!
の画面でsoyshopに表示されるURLが前のままだったので、
データベースで元URLを検索し、出てきた箇所を新しいURL(ディレクトリ)に変更いたしました。
こちらで変更いたしました。
その後、ようこそSOY CMSへ!
の画面でsoyshopに表示されるURLが前のままだったので、
データベースで元URLを検索し、出てきた箇所を新しいURL(ディレクトリ)に変更いたしました。
投稿者:齋藤毅
投稿日時:2024-02-01 16:13:42
上記の対応をする時に、サイトIDの変更であれば同じテーブルにあるdata_source_nameカラムの値も変更しておく必要があります。データベースで元URLを検索し、出てきた箇所を新しいURL(ディレクトリ)に変更いたしました。
ただ、この対応のみではおそらく今回の問題は解決しないと思います。
のエラーになっていますので、トップページが存在していない、もしくはトップページが非公開になっていないかを確認してみてください。this page is 404 notfound.
投稿者:Huckle Berry
投稿日時:2024-02-02 12:44:07
サイトIDは、変更しておらずです。
トップページが非公開はどこで設定しますか?
「ページ設定」から、一度トップページを削除し、また新たに作成いたしました。
削除前も、削除後も、
ページURLを_home
でナビゲーションページで作成しております。
トップページが非公開はどこで設定しますか?
「ページ設定」から、一度トップページを削除し、また新たに作成いたしました。
削除前も、削除後も、
ページURLを_home
でナビゲーションページで作成しております。
投稿者:齋藤毅
投稿日時:2024-02-02 14:06:22
最初のやりとりに
SOY Shopの方ではページの非公開の機能はありませんでした。
挙がっている情報から原因特定は難しいです。
とありますが、サイトIDは変更していないということで良いでしょうか?サイトIDを変更したところ、トップページがnotfoundになってしまいました。
失礼しました。トップページが非公開はどこで設定しますか?
SOY Shopの方ではページの非公開の機能はありませんでした。
上記の内容はこちらでも試してみましたが、報告にあります現象は再現しませんでした。「ページ設定」から、一度トップページを削除し、また新たに作成いたしました。
挙がっている情報から原因特定は難しいです。
投稿者:Huckle Berry
投稿日時:2024-02-02 21:49:42
失礼いたしました!
変更したのはサイトIDではなく、サイトURLです!
サイトIDは、前のまま
ディレクトリを変更いたしました。
FTPで、フォルダを変更し、データベースでURLを書き換えいたしました!
ディレクトリの変更がしたい。といった要望なのですが・・・。
変更したのはサイトIDではなく、サイトURLです!
サイトIDは、前のまま
ディレクトリを変更いたしました。
FTPで、フォルダを変更し、データベースでURLを書き換えいたしました!
ディレクトリの変更がしたい。といった要望なのですが・・・。
投稿者:齋藤毅
投稿日時:2024-02-03 05:28:41
ディレクトリを変更したということであれば、pathbuilderという機能が正常に働かなくなった可能性があります。
難しい内容になりますが、一応SOY Shop内で使用しているpathbuilderの解説ページのURLを載せておきます。
https://saitodev.co/soycms/soy2/tutorial/190
pathbuilderの動作を確認したいので、
※var_dump($_SERVER["DOCUMENT_ROOT"]);の出力結果は載せなくて良いです。
難しい内容になりますが、一応SOY Shop内で使用しているpathbuilderの解説ページのURLを載せておきます。
https://saitodev.co/soycms/soy2/tutorial/190
pathbuilderの動作を確認したいので、
の26行目付近の/CMSインストールディレクトリ/soyshop/webapp/src/base/controller/func.php
$uri = $pathBuilder->getPath();
$args = $pathBuilder->getArguments();
を
$uri = $pathBuilder->getPath();
$args = $pathBuilder->getArguments();
var_dump($_SERVER["DOCUMENT_ROOT"]);
var_dump($uri);
var_dump($args);
に変更して、トップページにアクセスして、ページの上の方に表示された値をお伝えください。
※var_dump($_SERVER["DOCUMENT_ROOT"]);の出力結果は載せなくて良いです。
投稿者:Huckle Berry
投稿日時:2024-02-05 09:16:02
ありがとうございます。
これでしょうか。
その後のエラーメッセージは前のものと同じです。
outletは変更後のディレクトリ名です。
string(6) "outlet" array(0) { }
これでしょうか。
その後のエラーメッセージは前のものと同じです。
outletは変更後のディレクトリ名です。
投稿者:齋藤毅
投稿日時:2024-02-05 09:27:28
こちらはトップページを開いた時のものでしょうか?string(6) "outlet" array(0) { }
outletというのはサイトIDを指しますか?
最初に出力された値にoutletはありましたか?
投稿者:Huckle Berry
投稿日時:2024-02-05 09:45:57
outletはサイトIDではないです。
サイトIDはonlineshopです。
ショップのURLである
https://www.xxx.com/outlet/
にアクセスした場合に出力された値です。
最初に出力された値は、outletはなく、
/home/xxx/xxx/public_html/
のパスが表示されています。
https://www.xxx.com/onlineshop/
から
https://www.xxx.com/outlet/
への変更を希望しております。
サイトIDはonlineshopです。
ショップのURLである
https://www.xxx.com/outlet/
にアクセスした場合に出力された値です。
最初に出力された値は、outletはなく、
/home/xxx/xxx/public_html/
のパスが表示されています。
https://www.xxx.com/onlineshop/
から
https://www.xxx.com/outlet/
への変更を希望しております。
投稿者:齋藤毅
投稿日時:2024-02-05 10:37:21
上記の件ですが、サイトIDの変更の操作を行わなければなりません。https://www.xxx.com/onlineshop/ から https://www.xxx.com/outlet/ への変更を希望しております。
今回はサイトURLの変更を行ったとのことですが、サイトURLの変更では上記の要望を満たす事は出来ません。
サイトIDを変更したければ、同一サーバ上のSOY CMS上でサイトの引っ越しを行ってください。
※サイトID:onlineshopからサイトID:outletのサイトにデータを引っ越し
下記のURL先の内容が参考になります。
サーバの引っ越し(SOY Shop)