サイト内で「外部リンク」として定義している部分について

お世話様です。質問です。

例えば、
アンカーポイントを「外部リンク」として指定をしているもので
URLを /about#anchor-BLOCK_4229 の様に定義していました。

v8までは、何の問題もなく稼働していたのですが、
v9では、 404 NotFound となります。

フルサイトマップ>外部リンクを編集で
URLを ./about#anchor-BLOCK_4229 として 「保存」すると

一定期間は、何の問題もなく Linkが機能するのですが、
**あるタイミング(不明)**で、
また 404 NotFound となります。

この場合、
また、フルサイトマップ>外部リンクを編集で
URLの内容をなにも変更せずに、「保存」だけすると、また問題なく
Linkが機能するのですが、また暫くすると 404 NotFound となります。

これは、何故でしょうか?

そもそも「外部リンク」とするのが間違いでしょうか?
開発環境<-->本環境と、相互に行き来している為、フルパス(絶対パス)指定はしたくありません。

なにか、良い方法はありますか?

上記の件ですが、何か解決策はないのでしょうか?

それとも私の根本的な勘違いでしょうか?

ご指摘頂ければ幸いです。

@Jun1chi すいません。返信が遅れました。

外部リンクにアンカーポイントを設定されているのですね・・・。
あまり Concrete CMS では想定していない挙動です。

ちなみに、404 Not Found の状態になったとき、外部リンクはどのようになっているのでしょうか?

あと、フルサイトマップで外部リンクを追加している理由はなんでしょうか?

おそらく、オートナビだと思うのですが、メニューの更新が少なければ、
マニュアルナビ、HTML ブロックなどの他のブロックを使ってのメニュー作成をしてもらったほうがいいかもしれません。

おせわさまです。

:arrow_right: 404 Not Found の状態になったとき、外部リンクについては、
例えば、
http ://localhost/concrete5/portfolio/about#anchor-BLOCK_4229

「404エラー

お探しのページが見つかりません。
下記から「検索」を行って戴くか、または以下のURLをクリック願います。
検索「 」検索

申し訳ございません。

お探しのページはサイトごと、以下に移転しました。・・・・・・・・・・」

です。
(これは、カスタマイズした404ページに飛んだ状態です。)

コンテンツは、
<li class=“”><a href=“./about#anchor-BLOCK_4229” target=“_blank” class=“”>Security_policy</a></li>
で記述しています。

(href=“/about#anchor-BLOCK_4229” target=“_blank” class=“” と、先頭の.を除いても同じ挙動です。(本番サイトでは.を付けていません。))

実際のページは、
http ://localhost/concrete5/about
view-source:http ://localhost/concrete5/about で

<div class="container">
 <div class="row">
  <div class="col-sm-12">    
   <div id="anchor-BLOCK_4229" class="anchor-sec"></div>
  </div>
 </div>
</div>

に、存在します。

尚、先にも書いていますが、
v8.の本環境では、この現象は発生しておらず、
v9.のローカル(MAMP)環境で発生しているものです。
C:\MAMP\htdocs\concrete5


:arrow_right: フルサイトマップで外部リンクを追加している理由は(1.2.)です。

1.本来の意味の外部リンクは、別のドメインのサイトのコンテンツへのリンク
1-1.URL:/servicesから、https ://xn–ecka7j.biz/ 等へ飛ばすこと
1-2.url:/blogから、https ://xn–ecka7j.biz/category/toolboox/windows11/ へ

2.他は、例えばよくある質問から、同一ページ内だけでなく、別ページに飛ばす場合
2-1.URL:/faqから、/faq#anchor-BLOCK_574 等へ飛ばす為
2-2.URL:/faqから、/search(サイト内検索)へ飛ばす為

などです。

これらは、マニュアルナビ、HTML ブロックなどを使わずに、編集 > ソース で
直接、
<li><a href=“#anchor-BLOCK_574”><span class=“btn btn-success”>スマホ最適化</span>について</a></li>
としています。

これが結果的に、フルサイトマップでの外部リンクになっている様です。

もちろん、マニュアルナビ、HTMLブロックなどの使用を否定するものでもなく、
他の局面では多用しています。

理由は、例えば、
コンテンツ作成時には、先にアンカーをHTMLブロック作って置いてから、
記事に直接、上記の様にHTML記述でLinkさせる方が手っ取り早いと考えているからですが、、、、

:arrow_right: 404 Not Found の状態になったとき、外部リンクについては、
例えば、
http ://localhost/concrete5/portfolio/about#anchor-BLOCK_4229

これは、
/concrete5/portfolio/ ページに訪問していて、

コンテンツは、

<li class=“”><a href=“./about#anchor-BLOCK_4229” target=“_blank” class=“”>Security_policy</a></li>

で記述しています。
(href=“/about#anchor-BLOCK_4229” target=“_blank” class=“” と、先頭の.を除いても同じ挙動です。

リンクに ./ と相対パスでリンクになっているので、違う階層のページに飛んでしまっているような挙動ですね。

先頭の . を除いても同じ挙動にならないはずですが、ちょっと不思議ですね・・・。

では、一度、外部リンクを http:// からドメインを含めて登録して試してみてくれませんか?

お世話様です。

もちろん以下の様にフルパス(意図的にhttp ://と書いています
(投稿がLINKと認識されない様にするため)実定義にはスペースはありません。)にすると問題ないのですが、
http ://localhost/concrete/about#anchor-BLOCK_4229

しかし、
本日は、従来通り以下のまま(./about#anchor-BLOCK_4229)でも

つまり、http ://localhost/concrete/portfolio からのプルダウンメニュー(Global Navigation が ./about#anchor-BLOCK_4229 のままでも)
問題なく「localhost/concrete/about#anchor-BLOCK_4229」にジャンプ(LINK)できました。

これは、従来から疑問に思っていること(この投稿の趣旨です。)
また、これも申し上げている通り(/about#anchor-BLOCK_4229のじょうたいであった場合も正常にLinkする場合もありました。)

そもそも、この値(/about#anchor-BLOCK_4229)の設定は、

本環境(v8)のデータ(.sqlデータも、定義部分)を、デプロイ(MAMP環境に)したもので、
その後、テスト環境としてv9にバージョンアップしたものです。(v8.5.7➡v9.0.2➡v9.1.2)

環境情報

Concrete Version

Core Version - 9.1.2
Version Installed - 9.1.2
Database Version - 20220908074900