外部リンクにnofollow、_blankは必要?簡単に一括設定する方法

数年前は外部リンクは別ウィンドウで開いて(target=”_blank”)、リンクにnofollowしなければいけない(rel=”nofollow”)というような都市伝説的な話がありましたが、これってどうなのでしょうか?という経験談です。

nofollowは是非とも使ったほうがいい

一般ならnofollowはリンク先へのマナーという感じです。

もし、相手側が被リンクを気にしているようでしたら、最初からnofollowにしてれば余計な気遣いをさせないで済みます。

それに、もし自分のサイトに問題が出たときに、相手のサイトに迷惑をかけないという配慮からしてもnofollowはしたほうが良いです。

逆もまたしかりで、相手側のサイトが変なことになってもこちらに影響は少ないかと思います。
(この辺はGoogle様次第…)

もし「我がサイトへのリンクをnofollowにしないで普通にリンクして」と言われたら、これこそ断ったほうがいい案件です!
理由としては被リンクがスパム扱いされるという傾向もあるので、もしこういったことをいう人のサイト順位が下がった場合に、ウチのせいにされることになりかねませんから!

個人的な考えを追加すると「被リンクを欲しがる人」は「被リンク」を買っている可能性もありますよね…
意識していなくても、そのサイトを担当したSEO会社が被リンク購入してつけているかもしれません。もし、そのサイトの順位が落ちた原因が被リンクスパムだとしたら、被リンク元となっているどこかわからない大量購入された悪質な被リンク元たちの一軍にウチのサイトも交じっていることになるので「悪質サイト」の仲間としてみなされたら…怖いです…

 

_blankに関してはどちらでもよいかと。好みの問題です。
ブラウザで沢山のタブが表示されるのが嫌という人もいれば、比較したいから沢山表示されたほうがいいという方もいますので、好みでいいと思います。

 

公的機関は除外

上記は一般的な会社や店などのサイトでの話です。
病院、学校、市区町村、公共機関などの公的なホームページは悪質サイトなどに該当しないはずですのでnofollowだろうが_blankだろうが好きにすれば良いです。

操作が面倒だと思うので普通にリンクで大丈夫ですよ。

逆に、そういった公的機関のサイトからfollowされたいですね…

 

外部リンクとしては認識される

Googleの解析ツールを使うと「外部リンク」としてリンクしている元サイトが表示されます。

これはnofollowをつけていようがいまいが「外部リンク」として表示されます。

結構気持ち悪いのでGoogleには申し立てを言ったほうがいいです。
(Search Consoleになってから、どこで申し立てすればいいのかわからないのでググってください)

でも、結局「被リンク元」とは扱われますが、たぶん中で「勝手な被リンク」と処理をしてくれていると…思います…そうであると信じたい…

 

 

正しくnofollowされているかの確認方法

今まではブラウザでマウス右クリックしてから「ソースを見る」で見ていたと思いますが、令和の時代は違います!

Chromeでサイトを開いて「F12」キーを押すと正しいソースを見ることができるので、こちらで確認してください!

従来の「ソースを見る」というのはhtmlソースしか表示されません。
しかし今のサイトの構造はJavascriptでソースが大きく変わります。

詳しくは「サイトの正しいソースを見る方法」を参考してください。

 

一括で_blankとnofollowをつける方法

JavascriptでjQueryを読み込んだ後に次のJavascriptソースを書きます

//外部リンク制御
$('a').each(function(i) { 
   // 外部リンク判定 target:_blankの付与
    if ($(this).attr('href').match(/http/)) {
        if (!$(this).attr('href').match("/自分のサイトURL/")) {
            $(this).attr({
                target: '_blank',
                rel: 'nofollow noopener'
            });
        }
    }
});

これだけですべての外部リンクにtarget=”_blank” rel=”nofollow noopener”が付きます。

他のサイトからうちのサイトを見た例です。
普通に「ソースを見る」では表示されていませんが

正しく「F12」でソースを見ると追加されています。

 

いちいちWordpressで「リンクを新しいタブで開く」にチェック入れなくてよいし、間違いがないので便利です。

 

jQuery…とにかくひたすらに便利すぎます…!

だからみんな使うんですね。

だから正しいソースを見る技術も大事なんです!

ソースを見るときはF12で!(><)

 

 

 

 

 

サイトの正しいソース(本物のソース)を見る方法

今まではホームページのソースを見るときはブラウザの「ソースを見る」で見ていたと思いますが、これは違います。

ここ数年、サイトの中身はJavascriptで大きく操作されているので、今表示しているページのソースは上記の方法では見ることができません。

正しいソースを見る方法はGoogle Chromeで表示してから「F12」キーを押して見ることができます。

「従来のソースを見る」方法はサーバーサイドのソースで、「ChromeのF12」はローカルでJavascriptで生成したソースまで見ることができています。

難しいことはさておき、とにかくソースを見るならF12で!

 

実際の違い

Yahooで見てみます。

「あなたへのおすすめ」で

「ピンチの瞬間を救われた保護猫2匹のいま」

とあります。この部分は見る人毎に違う内容なのでJavascriptで作られている部分だと思います。

つД-)保護猫…救われてよかったねぇ…

 

このページを普通に「ページのソースを表示」でみてみると

ソース内に「ピンチ」の文字すら出ていません。
(上の画像だと半角「ピンチ」っぽいですがきちんと全角で検索しましたよ)

しかし「F12」で見てみると

 

きちんとその場所が表示されています。

 

バナーの注意事項

アフィリエイトやブログツールを張るときは、これでチェックするのがとても大事だと痛感しました!(><)

 

先日、とあるサイトがGoogleのクロールで外国語扱いになっていました。
おかしいなと思ってF12でチェックしたら<head>内に設置した某アクセス解析ツールのJavascriptタグからソースがたくさん出ていて、その下にある他のアクセス解析にぶつかって</head><body>タグを貫通していたのです!(><)

 

ゆっくり見る間もなく慌てて解析ツールを外したら戻りましたが、後に何がどうなって</head>が認識されていなかったのか検証再現してみようとソースを戻したらその状況は起きなくなっていました…

解析ツールのほうで修正がはいったのかな…?

外部のツールを張るときは絶対にF12で確認したほうがいいですね…!

 

 

 

 

 

httpsにして順位が落ちる理由

SSL化、httpsにして順位が落ちる大きな理由は簡単に説明すると、こういうことです。

内容の再クロールによる下落

 

httpsにしたときに従来のhttpから始まるサイトは無視して、改めてhttpsから始まるサイトが新しくできたサイトとして扱われます。

 

検索エンジンは新しいサイトでのサイトマップを使用して、ページを再クロール(再度読み込んで中身の検証)を行います。

 

そこで再クロールした際に意外と中身がよくない?と判断されると順位が落ちます。

特に15年くらい前のSEOは「Hタグにキーワードを乱立」とか「更新日だけを変更」などの小細工で上位順位に上がっていました。

しかし、今ではそういった小細工は一切通用しないで「中身重視(コンテンツ重視)」になってきているので再クロールの際に中身を検査されたときに「どこかのコピペ!?」とか「内容が薄い!」と判断されるとランクが下がってしまいます。

なので、古いSEOで検索上位なサイトほどhttpsにすると怖い感じになります。

参考例とするとアフィリエイトなどのサイトはhttpsにしたら飛ばされたという話がよく出ます。
これなんてまさしく内容が薄いサイトで小細工で順位を上げていたツケが今出たということがわかります。

特にコピーページに対する罰則が強化されているので飛ばされやすいのかもしれません。

 

ここで重要なのはhttpサイトのものは、同一アドレスならhttpsサイトもコピーページと認識されないのが救いです。

例:
https://aaa.aaaの内容はhttp://aaa.aaaのコピーであっても良い

しかし

https://aaa.aaaの内容はhttp://bbb.bbbのコピーであったらペナルティ

 

逆に上がる理由

「httpsにしたら上がった!」という話もあります。

これは古いサイトを作成したときにコンテンツはしっかりとした良いページであってもタグがきちんと整備されていなかったので良いサイトを見落としていたからです。

今見たらすごく内容が良い!と発見されて順位が上がったことが考えられます。

 

誘導サイト扱いされてしまう点

httpサイトの中にhttpsサイトのリンクを張るのはOKです。何も起こらないので今まで注意していなかったと思います。

しかしhttpsサイトからhttpサイトのリンクは「悪質サイトへの誘導」とみなされてしまうことがあります。

なので、httpsサイトのほうでリンクの再確認をするのは結構大事。

これはGoogle Search Consoleで警告が出たり、ページを開いたときにブラウザのカギマークや盾にとか亀裂の入ったマークが表示されるのでわかります。

 

httpsにするのは簡単?

  1. サイト内の内部リンクのhttpで記述している部分をhttpsに変更
  2. wordpressなら「設定」のサイトのURL2か所をhttpsにする
  3. サーバーの「httpsにする」ボタンをクリック
  4. htaccessにhttpから来たリンクをhttpsに移動させるリダイレクトを記述
  5. Google Search Console(旧ウェブマスターツール)に再登録する

作業は間違いようもないことで、たったのコレだけです。

あとは1か月くらい検索に出なかったり順位が落ちたり…ヒヤヒヤする期間ですが、1週間くらいでGoogle Search Consoleに動きが出ますから、その間にエラーなどは見つけ次第修正する感じで過ごして検索エンジン様様で祈るしかないです。

 

 

 

メールフォームの確認画面は必要か?離脱率なのか検証

とても便利なメールフォーム。

よくある動きとしては、
「必要事項を入力」→「確認画面」→「送信」
が一般的でしたが、最近は「確認画面」がないものが結構多くありますので
検証してみた結果と考察です。
忙しい人向けに最初に結果を書きます。

 

結果:確認画面は必要か?

不要だと感じました。

 

そして、使う人はちょっと不便かもしれないけど、
受ける側からすると(サイト運営側)からすると確認画面はないほうが良い。

(詳しくは下記の検証を参考にしてください。)

ただし補足として、

  • 別フォームで「お問い合わせ」のフォームがあったほうが良い
  • 最初の入力フォームで内容をしっかりと整備

が大事

補足の理由としては、実際に自分がスマホで楽天で注文をしたときに、確認画面が無く使用ポイントを修正したらいきなり「ご注文ありがとうございました」となり「えぇ!?」って思うことがあります。

大きな荷物だったので日付指定にしたかったのに、日付指定の入力箇所が最初に無かったので「後で入力するのかな」と思って進んだらいきなり注文完了になりました。

これは困るので「問い合わせフォーム」から日付指定の旨を後からメールして対応してもらいました。

1回の入力フォームで必要な入力項目を整備するのが大事だと思います。

 

 

起:確認画面の必要性を調べた経緯

通販サイトを作っています。

この通販サイトでは確認画面ありの「入力」→「確認」→「送信」スタイルをとっています。

「送信」したあとはサイト運営会社とお客様が入力したメールへ自動送信する、一般的なメールフォームスタイルです。

しかし、週に10件くらいの結構な頻度で「自動送信メールが届いていない」とか「送ったのに自動返信メールも通販サイト会社にも届いていない」という連絡が多いので、本当に送っているのかどうか?と調べてみました。

 

 

承:調査方法

確認画面に来た回数と送信済み画面に来た回数を定点調査しました。

期間は3月20日~6月20日の3か月92日間。

件数は

確認画面通過件数

1532件(1579件-47件)※1

メール送信件数 1271件
メールデーモン数 36件

※1:確認画面を通過した件数は1579件ですが、戻って入力を直した重複件数と、いたずらなのか動作を盗もうしているのか「asdfg」とか「aaaa」などの変な入力をして確認画面を表示して送信しない人がいた件数が47件ありましたので、これは無効として考えるとして1579件-47件で1532件が有効確認画面通過数とします。

 

■自宅のPCで受信した分

■会社のPCで受信した分

 

この数値をみると

「自動返信メールが絶対に届いていない」人は36人。
3か月の期間だと13週。
36件 ÷ 13週 =2.7件
迷惑メールのほうに入った可能性も高いのですがSMTPでメールを送っているのでそんなに変なメールではないかとおもいますが、週に10件以上の問い合わせがくるほど自分のメアド入力ミスはないという感じです。

 

問題は「確認画面」からの離脱率です。

確認画面通過1532件 – 送信メール1271件 = 261件

もちろん戻って修正した件数は引いているので71件が「注文をやめた」か「送信したと思っている」のどちらかになります。

この261件、3か月の期間だと13週。
261件 ÷ 13週 =20件

週に20件とすると、「自動送信メールが届いていない」とか「送ったのに自動返信メールも通販サイト会社にも届いていない」の問い合わせが週に10回来るとすると「迷惑メールに行ってしまった人」「送った気になっていて送っていない人」「離脱した人」の中の「送った気になっていて送っていない人」に該当しているかもしれません。

 

そして離脱率につきましては少ないほうだと思っています。
システム的に「商品を選ぶ」→「数量や条件を入力」→「総額表示」をしてから「上記の内容でよければ注文の入力フォームが出るように、入力フォームまでたどり着く人のハードルを上げていますので、入力する人は注文する気でいる人というようにしています。
そのフィルターは気のせい?かと思われるかもしれませんが、実際にここまで来た人は今までの「すぐに注文できるフォーム」に比べてキャンセル率が格段に下がってきていますので入力フォームまで来る人は脈ありで送る気満々だと考えられます。

 

転:もし確認フォームがなかったら?

「送ったつもり」の人がいなくなるのはあたりまえですね!

 

確認フォームがないと不便に思うかもしれませんが、すでに入力した時点で送信の意思があるということですから「あぁっ!送信されちゃった!」と思っても「まぁいいか…」とあきらめがつきます。

もし、変更したい点などがあったら「問い合わせフォーム」から入力すればいいことですし、電話連絡でもできますから、一瞬不安に感じるかもしれませんが特に困りはしないです。

それよりも怖いのはお客様への不備で、「注文したつもりなのに、使用する日に届かなかった」というのは結構きついかもしれません。せっかく入力していただいたり検討してくれたお客様にとって無駄な時間を取らせてしまったり、購入した気になっていたのに…とすべてが台無しになってしまうということも…

それに「注文しようかな…やめようかな…」と悩んでいる人にとっては強力な背中を押すことになりますので、ある意味、良いことかもしれません。

 

「確認のない不安」
  をとるか
「お客様への不備」+「離脱」
  をとるかのどちらかで考えてみるのもよいかと思います。

 

最近「確認画面」で赤文字で「ご注文は確定していません」と出るサイトをよく見ます。
(画面はYahooですが、ピザのサイトとかでも見ました)

これが出るのも「確認画面」で送った気になっている人が結構多いということが判明されたからなのかもしれません。

 

 

運営上の注意

確認画面が無いことでワンクリックでメールが送られてしまいます。
スパムやいたずらメールが増えると思いますので、入力項目に「必須」や「文字数〇文字以上」や「□送信をすることに同意する」チェックボタンなどの送信前対策が必要になります。

 

 

 

 

 

 

 

 

WordPress投稿画面のタグの文字をそろえる

管理画面の投稿でタグを「よく使われているタグから選択」を押したときに出てくるタグの表示がタグクラウドではなく、同じ文字サイズで統一して表示したい時の方法です。

 

WordPressの改造

/wp-includes/category-template.phpの

925行目あたりの

'<a href="%1$s"%2$s class="%3$s" style="font-size: %4$s;"%5$s>%6$s%7$s</a>',

みたいなところで「 style=”font-size:」を設定していますから、その部分を削除すればよいです。

 

バージョンによって記述がちがうので「font-size:」で検索をして場所を特定してください。

 

WordPress4.7.nの例です

'<a href="%1$s"%2$s class="%3$s" style="font-size: %4$s;"%5$s>%6$s%7$s</a>',

'<a href="%1$s"%2$s class="%3$s" %5$s>%6$s%7$s</a>',

に変更します。

 

投稿画面でタグの表示は統一のほうがいい?

新しいタグだと、どうしても記事が少ないので小さくなって見えにくくなってしまいます…
例えばニュースとかだと「昭和」「平成」のニュースはたくさんあるけど「令和」のニュースはそんなにないのでどうしても小さくなりがちです…

昭和 平成 令和

こんな感じになると思います。

その場合には、全部同じ大きさのほうが編集はしやすいです。

昭和 平成 令和

実際、既存のタグなんていちいち入力するのも面倒だから既存のものをポチッとクリックで入れ込みたいわけですよ…

 

ついでにタグを常に表示する方法

こちらに詳細がありました。
http://milkveil.com/archives/4027

 

リンクが切れた時の備忘録としてざっくりまとめると、
テーマのfunction.phpに次を追加すると常に表示されるようになります。

function enlargetagcloud($args,$taxonomies){
	if(DOING_AJAX && $_POST['action']=='get-tagcloud'){
		$args['number']=100;
	}
	return($args);
}
add_filter('get_terms_args','enlargetagcloud',10,2);


function my_admin_head(){
echo
'<script type="text/javascript">

    jQuery(function( $ ){ 
        $("#link-post_tag").each( function(){
            tagBox.get( $(this).attr("id") );
            $(this).html("").unbind().click(function(){
                $(this).siblings(".the-tagcloud").toggle();
                return false;
            });
            return false;
        });
    });

</script>';
}
add_action('admin_head', 'my_admin_head');

 

 

レンタルサーバーにデータを保管するのはよいか悪いか?

結論的にサーバーに保管は良い!
でも使い方を間違えると最悪な事態になる!

ということを伝えたい…

 

出先の会社の人が「パソコンの調子が悪いけど~データはサーバーに置いているから大丈夫」と言っていました。

 

データベースやソフトを扱っている私からするとびっくりしましたが、ファイルというものは「趣味の風景写真」がメインということなのでホッとしました。

さらに使用しているのはDropBoxというので、よかったぁ…と。

 

サーバーにデータを保管する危険な点

サーバーの提供サービス次第で盗まれる

保管用に構築されたサーバーに保管してますか?

Dropboxをはじめとするクラウド上でのファイル保管用で提供されているサーバーならセキュリティもしっかりしているので安心です。

でも、web用として公開しているサーバーは、偶然にも保存しているファイル名を入力してしまったら誰でも盗むことができるので怖いです。

パスワードメモとか顧客データなどが入ったものはシッカリとセキュリティのあるクラウドで保管しないと危険です。
もしくはwebサーバーでもアクセスさせないように設定するとかの対策が必要だと思います。

 

アップロード、ダウンロードで壊れる

回線状況や、使用しているパソコンの状況によってですがアップロード時に破損したり、ダウンロード時に破損したりします。
写真くらいなら大丈夫ですが、画像でもイラストレータのデータやソースではなく動く状態のモジュールなどはちょっと欠損すると動かなくなることがあるので危険です。

よくメールで送ったデータが「壊れていて開けない」ということがあります。メールならもらってすぐに開封するので破損を知ることができますが、保管となると次に開くのがいつだかわからないので、保管したときに破損しているということもありますから確認が必要となりますね。

 

本当に大事なものを保管していますか?

「パソコンが壊れたからデータを新しいパソコンに戻したい」ということで環境設定の依頼がくることがあります。

結構多いのが「保管していたファイルはショートカット」というミス…

「マイドキュメント」や「マイピクチャ」の中身じゃなく「マイドキュメント」「マイピクチャ」のショートカットだったり、WordなどのデータではなくWordの起動させるためのショートカットアイコンだったり…

拡張子を気にしないで使用している人は、こういった怖いことが起きますので、ファイル名だけが頼りになるFTPでのアップロードは怖いです。専用サーバーを使って管理したほうがよいですね…

 

サーバーにデータを保管する利点

作業場所がいろいろなところの場合

家で作業して会社で作業するというきにいちいちUSBに入れなくてもどこでも開けるから便利です。特にスマホやタブレットでも開けるのでちょっとしたメモ代わりに使っても便利です。

 

数人でシェアする場合

これも、いちいちほかの人に渡さなくてもよいので便利です。

 

専用サーバーだと管理が楽で見つけやすい

保管専用サーバーだとファイルの種類や検索で見つけやすいので専用サーバーを使用するほうが良いです。

FTPだと、上記のように間違えてわからないファイルをUPしたりするので「何のファイルだか」わかりやすく表示できる専用サーバーのほうがおすすめです。

それに画像だとプレビューできる機能のある所もあるから、専用サーバーは便利です。

 

壊れにくい

自宅に置いてある外付けハードディスクは壊れたらアウト。「保管用に」と言って古いPCや中古ハードディスクなんかを使用したりすると機会が壊れて使えなくなることがよくありますので危険です。その点クラウドの専用サーバーはシッカリと管理してくれている(と思いたい)のでペットや子供のいる家庭よりは安心だと感じます。

 

おすすめの保管方法は?

クラウドの活用と外付けハードディスクの2つが完璧です。

大事なものは信頼のおけるクラウドに、どうでもいいものはハードディスクという感じでもよいかと。

全部クラウドに入れると容量オーバーになりやすいので、預けるもの、家に置いておくものの分別するのも大事です。

 

 

 

 

 

 

 

WordPressコピペで文字だけをペーストしたい。書式は消す。

WordPressで投稿する際にコピペをすると書式まで一緒にコピペされてめんどくさいことになってしまう場合。

 

書式は消して、文章のみを入れ込みたい場合の方法です。

 

たとえば下のようなサイトの部分をコピペの場合、
文章を「Ctrl + c」でコピーします

 

「Ctrl + v」で貼り付けるとこうなります。
色はCSSなのか<b>タグも一緒に持ってきています。

 

でも、貼り付けの際に
「Ctrl + Shift + v」
でペーストすると、文章のみになります。

 

知らなかった!

ちなみにこれはWindowsのショートカットで
Macだと「Command + Shift + v」らしいです。

 

(><)いままで何やってたんだろう!!!!

いちいちテキストエディタを開いて、そこに貼り付けてキレイしてからペーストしていました(><)

 

2つの文章の違いを調べる方法(整合性をとる方法)

プログラムでよくあるのですが「下書きページのモジュール」と「本番ページのもjy-る」のどこが違うのかがわからないというときに、さっとExcelを使って調べる方法です。

プログラムだけでなく書面でもできます。

要するに「A文章とB文章の違いを探す方法」

そういうサイトもありますが、秘密の文章も入っているの何か怖いというときはこの方法がおすすめです。

1.テキストエディタでタブなどをとる

2つの文章のコピーを準備します。

TerapadやNotepad++などの、ちょっと高機能なテキストエディタでそのファイルを開き「\t」や「 」(半白スペース)を””に置換して無くします。

 

2.Excelに貼り付けます

1行目にわからなくならないようにタイトルを入力して
2行目から文章を貼り付けます。

A列に文章A(下書き環境)、B列に文章B(本番環境)
という感じで貼り付けます。

1でタブを消しているので1つの列に収まるはずです。
収まらなかったら手動で1つの列に収まるように直してください。

 

2.計算式を入れます

C1セルに「=IF(A1=B1,0,1)」と入力します。

意味は「A1とB1が同じなら0と表記し、違っていたら1と表記する」という関数です。

ここではA1の「下書き環境」という文字とB1の「本番環境」の文字が違うので1と表示されています。

 

3.下のほうにコピーしていきます

セルの右下当たりをつまんでドラッグで指揮をコピーしていきます。

 

4.結果が表示されます

結果が表示されるのですが、1を検索で探してもいいですし、面倒なら次の設定へ。

 

5.D列に行を追加します

D2に1、D3に2と入力してドラッグドロップで連続した数字をコピーしていきます

 

6.C1の文を「判定」にします

ソートしたときにわかりやすいように命名

 

7.Cを基準にして降順ソートします

さっき「判定」と命名したのでわかりやすいです。

全体を選択してから、「判定」を優先にして降順ソートします。

 

8.でてきました

判定が1になっているものが一番上に来るので、行項目と照らし合わせて相違のある場所を見つけることができました。

 

補足:印刷されたものの場合

プリントアウトされた文章の場合には重ねてガラスなどに押し付けて光に透かして見ます。

  1. Aを下にして見る
  2. Bを下にして見る

の2回行うことがポイント。

アナログだけど、1行1行チェックしていくよりも、
これが一番早くて正確性が強いです…^^;

 

WordPress英文を入れると403エラーで保存できない(Advanced Custom Fields)

Advanced Custom Fieldsで作った入力項目に長い英文(英語)を入力すると403エラーが起きて保存できない件です。

または「固定ページのカスタムフィールドに英文を入れると403エラー」などともいわれています。

ググるといくつか同じ現象があるものの、解決になっていなかったりするのでまとめます。

 

最初に修正方法

サーバーのWAFを無効にします。
これで15分くらい後に入力ができるか確認します。

入力ができなかったらブラウザのキャッシュをクリア、もしくはもっと時間をおいてからトライします。

よくあるうっかりミスで「wwwあり」と「wwwなし」のどちらかしかWAFの解除をしていないということもあるので該当サイトを確認するか、両方解除します。

 

追加修正

もし、上記を行って正常に動くようになったらWAF無効は良くないので、「除外設定解除」を行います。

方法はサーバーごとに詳しく乗っているのでサーバーのFAQを参考にしてください。

そしてWAFを有効にします。

 

エラー動作の詳細

Advanced Custom Fieldsの入力項目や、Wysiwygに英文を入力すると403が起きます。

それ以前にAdvanced Custom Fieldsは全くの無実でエラーとは関係なく、Wordpressのカスタムフィールドに英文を入れると403エラーになるということです。

参考までにAdvanced Custom Fieldsを停止させて(削除はしない)、Wordpressの投稿からカスタムフィールドタブの中に英文を入れるとお間にように403エラーがでます。

EC-CUBE3在庫数順(在庫切れ商品後ろ)でエラーの件

EC-CUBE3(EC-CUBE4も同じかもしれませんが)で

・「在庫なし」商品を最後にまとめたいときに在庫数でソートすると良い
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=20257&forum=11

・「在庫なし」商品を表示する、しないボタンを付ける

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=19843&forum=10&post_id=84975#forumpost84975

 

普通でしたらこれで十分大丈夫なのですが、

在庫数のソートを入れるとエラーになる場合
↓のようにすると

src/Eccube/Repository/ProductRepository.php
getQueryBuilderBySearchData() に

$qb -> orderBy(‘pc.stock’, ‘DESC’);

「システムエラーが発生しました。」

が出てしまう場合の対処方法です。

 

原因はMySQLのバージョン

こちらが参考になります

https://codeday.me/jp/qa/20190312/410615.html

上記リンクが切れた時のために内容を話しますと
「MySQL5.7で
$queryBuilder = $this
->createQueryBuilder(‘recipient’)
->leftJoin(‘recipient.message’, ‘message’)
->orderBy(‘message.dateSent’, ‘DESC’);

したときに
「message.dateSentはSELECTのリストに表示されていないです!」
とエラーになるという事です。

MySQL5.5モジュール版でも起こります。

 

解決方法:SELECTにいれる

src/Eccube/Repository/ProductRepository.php
getQueryBuilderBySearchData()の該当箇所で

$qb->addSelect('pc.stock as HIDDEN stock');
$qb->OrderBy('stock', 'DESC');

としてやると上手くいきます。

 

その前にきちんと
$qb->innerJoin(‘p.ProductClasses’, ‘pc’);

されていることも確認してください。