さくらVPSでwwwサブドメインのURLを統一(正規化)する

www.○○○.com でアクセスしたときに、○○○.com にリダイレクトする方法

1.www.○○○.com を叩いたら、○○○.com のデータがあるサーバーにアクセスするように、DNS のゾーンの設定をする。

2.○○○.com のサーバー内の vhost.conf などの設定ファイルに以下の記述を追記する。

--------------------------------------------------
# www normalization
ServerAlias www.○○○.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.○○○\.com$
RewriteRule ^/(.*) http://○○○.com/$1 [R=301,L]
--------------------------------------------------

なお、△△△.○○○.com のように既にサブドメインがついている URL は対して、www.△△△.○○○.com というサブドメインのサブドメインをつける URL の記述は通常しない。www 自体がサブドメインのため。上記のやり方でも正規化できない。

うまくいかない場合は、ブラウザの情報を削除してからやってみる。はまった。

【さくらVPS】php.ini の設定変更の覚書

さくらVPSでphpをインストールした際、別のサーバーでは出なかったエラーが出るようになった。
エラーを表示にした時の設定の覚書

初期設定でphpのエラー出力が非表示になっていたので表示するに変える
-------------------------------------------------
display_errors = Off
-------------------------------------------------
↓↓↓
-------------------------------------------------
display_errors = On
-------------------------------------------------

初期設定が↓のようになっていて「Notice: Undefined index」エラーが出るので変更
-------------------------------------------------
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
-------------------------------------------------

-------------------------------------------------
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
-------------------------------------------------

【mysql】データベースの照合順序を変更する

データベースの照合順序を変更する
---------------------------------------------------------
ALTER DATABASE データベース名 COLLATE utf8mb4_general_ci
---------------------------------------------------------

テーブルの照合順序を変更する
---------------------------------------------------------
ALTER TABLE テーブル名 COLLATE utf8mb4_general_ci
---------------------------------------------------------

CID番号から漢字を調べる

CID番号(Adobe-Japan1)から漢字を調べるにはグリフウィキを使うのが簡単。

グリフウィキ

たとえば、CID 15294 は「顙」だが

https://glyphwiki.org/wiki/aj1-15294

にアクセスすればいい。URLの下5桁がCIDに対応している。CIDが4桁なら先頭にゼロを加えて5桁にする。

さくらVPS で pear をインストールしたときの覚書

さくらVPS で pear をインストールしたときの覚書

現在インストールされているパッケージの確認
------------------------------
pear list
------------------------------

インストールできるパッケージの一覧
------------------------------
pear list-all
------------------------------

インストールされた pear のバージョンを確認
------------------------------
pear version
------------------------------
PEAR-1.9.4 がインストールされた。

DB パッケージをインストールする
------------------------------
pear install DB
------------------------------
DBパッケージをインストールするには pear のバージョンが 1.10.4 以上でないといけないエラーが出る。

こことかいろいろ見ながら最後に強制アップデートできた。

------------------------------
pear upgrade --force PEAR
------------------------------

preg_replaceで予期せぬnullが返ってくる場合の対処法

pcre.recursion_limit の値を増やす。
値は phpinfo で確認

phpファイルに以下を記述
--------------------------------------------------
ini_set('pcre.backtrack_limit', 100000000);
--------------------------------------------------

参考ページ:preg_replaceでnullが返却される際の対処

【javascript】宣言してない変数へ値を代入するとグローバル変数が作成される

メモ。

宣言してない変数へ値を代入するとグローバル変数が作成されるのは javascript の仕様。

非strictモードの場合のみ。

詳細:“use strict”(厳格モード)を使うべきか?

【jQuery】アラートを一回だけ出す

【jQuery】アラートを一回だけ出す

これで↓「青年」をクリックすると「青年」「ある青年の主張」とアラートが二度出てしまう。
-------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$(document).on("click", "span", function() {

var get_txt = $(this).text();

alert(get_txt);

});
});
</script>
</head>
<body>
<span>ある<span>青年</span>の主張</span>
</body>
</html>
-------------------------------------------------

「青年」をクリックすると「青年」だけ、その他の文字列をクリックすると「ある青年の主張」というアラートをそれぞれ一度だけアラートするには。

方法1
バブリングを止める
-------------------------------------------------
<script type="text/javascript">
$(document).ready(function(){

$(document).on("click", "span", function(e) {

var get_txt = $(this).text();

alert(get_txt);
e.stopPropagation(e);

});
});
</script>
-------------------------------------------------
stopPropagation で親要素へのイベントの伝播を止めている

方法2
event.target を使う
-------------------------------------------------
<script type="text/javascript">
jQuery(document).on('click', function (event) {
var target = event.target;

if (target.tagName === 'SPAN') {
alert(target.textContent);
}
});
</script>
-------------------------------------------------

event.targetは、イベントバブルのイベントを開始したDOM要素を返すプロパティ。

jQueryで文字列だけ残してタグを削除

jQueryで文字列だけ残してタグを削除する方法

特定の値を持ったカスタムデータ属性を含むタグを消す場合
-------------------------------------------------
$("span[data-url=" + url + "]").each( function(i){
var childNodes = this.childNodes;
$(this).replaceWith(childNodes);
});
--------------------------------------------------

参考:教えて!goo jqueryを使って無駄なspanタグを削除したい

【javascript】Uncaught TypeError: Cannot read property 'replace' of undefined

Chrome のコンソールを見ると javascript のエラーが出ていた。

-------------------------------------------------
Uncaught TypeError: Cannot read property 'replace' of undefined
-------------------------------------------------

replace が未定義で読み込めないらしい。

原因 → 文字列でないものに replace を使っていた。

1 / 2912345...1020...最後 »