投稿者: admin Page 25 of 47

robot.txt とかカノニカルタグとか、sitemap.xml とか

いつも入れる必要?いれない不要?入れたほうがSEO的に(迷信だよ)?いや、もしものために念のために、
ってなるので再度調べてまとめておくことに。

robot.txt

登録したくないコンテンツが含まれる場合のみ必要で、基本必要ない。
ただし、以下の参考サイトにあるとおり、

サイトに robots.txt ファイルが存在するがアクセスできない(言い換えれば、HTTP ステータス コード 200 または 404 が返されない)場合は、クロールすべきでない URL をクロールすることにならないよう、クロールを延期します。

つまりサーバーで何かしらの不具合などで robots.txtが404,200も返さない状態になったらクロールしないよ。とのこと、常にSeachConsoleなどでサイトを管理している場合は問題ないがそれ以外の放置している系のサイトは入れていたほうが無難っぽいです。あと最近のWordPressの場合は以下のようなrobots.txtを仮想で生成してくれます。(※注意パーマリングの設定が?p=123とか、サーバーのリライト設定が有効でないと生成されない)
(WordPress自動生成のrobots.txt 管理画面を除外してくれている)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

参考サイト : Google Search Console ヘルプ
https://support.google.com/webmasters/answer/2409682?hl=ja

カノニカルタグ(canonical)

  • 複数あるURLを正規化、www有、無などあるので基本入れたほうが良いっぽい、
  • ただ静的(Static)なコンテンツの場合はメンテナンス性も落ちたりURL変更時の編集コストなどが高そう。なにか変更の際のうっかり変更もれは注意。
  • スマホがページ別等の場合は必須かな。
    GogoleのSearch Console ヘルプでの説明は以下。このページ自体もちゃんと入ってますね。
    参考 : Search Console ヘルプ
    https://support.google.com/webmasters/answer/139066?hl=ja

動的サイトなどの場合はヘッダーは共通のはずなので入れて置くほうがよいかも

環境変数などで簡単に設定できるはずなので、入れておけば無難かな。

静的サイトは入れなくてもよいのかも

基本SEOアクセスを気にするようであればAnalyticsで気づくはず、気付かないれべるの気合なら入れないほうが皆幸せかも。

サーバー側で、

www 有り無しの統一などはしてあげてあげると良いかも。

sitemap.xml

こちらは基本的には、サイトマップが必要かどうかを検討する必要もありそうです。
他のページからリンクされているページは基本クロールされそうだけどそもそもリンクが無いページをインデックスさせるケースとか設計的にかなり特殊そうな気もする。
あとは初期公開のサイトや、リニューアルでURLが変更になったりなどのばあいは、クロール漏れなどは怖いので念のために入れておきたい気もする。(合わせてページ変更の302リダイレクトなども)

以下のGoogleのヘルプページの、‘サイトマップが必要かどうか’ 部分が参考になります。

参考 : サイトマップについて Search Console
https://support.google.com/webmasters/answer/156184?hl=ja&ref_topic=4581190

ページが多いサイトでのメンテナンスも大変なので、基本はなしで、必要な際に設置、ボリュームが莫大なら自動生成プログラムや、WordPressだとプラグインで自動生成が楽そう。

Search Consoleの登録

検索キーワードがAnalyticsでほとんど見れなくなっているので、こちらでアクセスに繋がったキーワードの表示順位や実際のアクセスになったかなど非常に有益な情報をみれたり、クロールのエラーなども検知できるので必須といえます。
(そういえば昔、Bing – Web マスターツールって登録したけど全然みなくなったな、なにか有益な活用方法など教えて欲しい)
あと、AMPのエラー検知なども便利。

Evernote Mac Version 6.11.1でコードブロックを入力する方法 は ”“`[Emter]”と入力

いろいろ調べた方法でためすもどうしてもできなかったのですが、"[Emter]"と入力するとできました。

Adobe AIR HTMLLoaderでGoogle Maps JavaScript API(バージョン3.28.7)が使えなくなった。>>フローズンバージョン(v=3.20)指定で表示できた。

デジタルサイネージの施設情報で利用しているGoogleMapが表示されなくなったと。
構成は
-Windows7
-AdobeAIR : 3.なんとか。
-Gogolemap: v3(指定なし)

とりあえずフローズンバージョン(v=3.20)指定で表示できました。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key={YOUR_API_KEY}&v=3.20"></script>

バージョニング
https://developers.google.com/maps/documentation/javascript/versions?hl=ja

バージョンが最新バージョン、リリースバージョン、フローズンバージョン3つしか無く
どんどん新しいものに変わっていくらしいので、将来的にはダメダメそう(AIRがふるいWebkitなので。。

早くElectronなどに変更したほうがよいのかも。

phpMyAdminから簡単にExcelにエクスポートする方法、ドキュメント作成などに便利

mysqlのデータベースの構造を簡単にエクスポート

show full columns from banners;

からExcelでエクスポートとかで頑張ったりしてたけど以下の方法が超手っ取り早そう。

そう、印刷画面ボタンおして表示された画面をそのまんまコピペ(印刷を殆どしねいですからこれまでなかなか気づかず。orz…)

illustratorで自作(カスタム)のスクリプトを作成してショートカットで使うまでのメモ

こんにちは、ホームポジションに両手を固定しておきたくて、目線でマウス操作できかなぁーと考える今日このごろ。
今回は、HTMLまーくあっぷで実際のブラウザの表示をキャプチャ(クリップボード)し、それをイラレへ貼付け、半透明にして重ねてチェックとうことをしたいです。

“半透明にして” っていうのがいつもキーボドから手を話して不透明度パネルを操作するのが大変でショートカットしたい。

illustratorで自作(カスタム)のスクリプトを作成してショートカットで使うまでのメモ

1.まずはスクリプト作成

sel = activeDocument.selection;
for (i=0; i<sel.length; i++)
{
sel[i].opacity = 50; 
}

選択オブジェクトを配列で取得

activeDocument.selection

まぁループさせる

for (i=0; i<sel.length; i++)

で、透明度を50に設定

sel[i].opacity = 50; 

これでファイルを以下のファイル名で保存(ファイル名は任意)
/Applications/Adobe Illustrator CC 2017/Presets/ja_JP/スクリプト/透明度.jsx

2.手動で実行のテスト

イラレを開いてなにか画像を選択して、メニューから実行してみます。
うまく半透明になってくれればOK、半透明にならなければ何処かまちがっています。

3.ショートカット登録

イラレ自体で、スクリプトがショートカット登録できないので、他のアプリをつかって登録します。
ScriptKeyAi(アイコンが猫っぽい
http://tama-san.com/scriptkey/

ダウンロードして [+]ボタンをクリック先ほどの保存したファイルを選択、ショートカットキーを設定します。

なにかイラレで画像を選択してショートカットで透明になるかテストまで。

gitで特定のcommitからの差分をzipに固める

git archive --format=zip --prefix=root/ HEAD `git diff --name-only HEAD {コミットID}` -o diff.zip

めも。

Youtube IFrame Player APIでスマホで autoplayが効かない件と解決法。

少しハマったのでめもします。

Youtube IFrame Player APIを使っていて、オリジナルデザインのボタンを1タップで再生したい。
ただし、Chrome や Safari などのモバイル ブラウザでは、HTML5

$('#オリジナルボタンセレクタ').click(function(){
    //PlayerをNEW
    var player = new YT.Player('{ELEMENT_ID}',{
        videoId:'{YOUR_VIDEO_ID}',
        playerVars: {
            autoplay: 1,
        },
        events:{
            //ONReadyしたら再生
            onReady:function(){
                player.playVideo();
            }
        }
    });
});

どうにもユーザーのマウスイベント経由だけど、ダメみたい。(間にイベントの非同期準備できなところが挟まるからかも?)
以下のようにすると解決しました。

//イベントの先にplayerをnew
var player = new YT.Player('ELEMENT_ID',{
    videoId:'YOUR_VIDEO_ID',
    playerVars: {
        autoplay: 0,
        enablejsapi:1,
    },
    events:{
        onReady:function(){
            //onReadyのところでボタンイベントを準備
            $('YOUR_BTN_ID').click(function(){
                player.playVideo();
            });
        },
        onStateChange:function(e){

        }
    }
});

PHPStormのhtaccessのコメントアウトが地味に超便利

たまにリダイレクトの設定などで大量のhtaccessを記載することがありますが、
その際にPHPStormのショートカット(Cmd + /)がとても便利。

QNQPにsshできなかった。

sshしようとおもったら、

$ ssh username@xxx.xxx.xxx.xxx
Received disconnect from xxx.xxx.xxx.xxx: 2: Too many authentication failures
Disconnected from xxx.xxx.xxx.xxx

って怒られた。

$ ssh -o PreferredAuthentications=password username@xxx.xxx.xxx.xxx

ってパスワード認証を優先(PreferredAuthentications=password)すると繋がった。 passwordと鍵認証が有効だからなのかな?

Cakephp2 ACL 導入メモ(User,Groupのシンプル設定、最低限の手順メモ)

かなりざっくりのメモ自分が思い出せるレベルです。(汗

  • Acl (アクセス – コントロール – リスト)
    アクセスを制御するシステム全体の事を言っている。(学生規則リストみたいな)
    具体的には ACLコンポネント全体と捉える。

  • ARO (アクセス – ロール:役割 – オブジェクト)
    アクセスを制御する役割の種類(校長、先生、生徒、生徒etc)
    具体的には arosテーブルで定義

  • ACO (アクセス – コントロール – オブジェクト)
    アクセスする実際のアクションを定義していく
    具体的には acosテーブルで定義

DBの準備

Allで使う。aros,caos,aros_acosの3つのテーブルの定義を以下のsqlを実行する。

/app/Config/Schema/db_acl.sql

Controller

AppController

  • コンポネント追加
public $components = array(
  'Acl',
  'Auth' => array(
    'authorize' => array(
      'Actions' => array('actionPath' => 'controllers')
    )
  ),
  'Session'
);
  • へるぱ追加;
public $helpers = array('Html', 'Form', 'Session');
  • beforeFilterへAuth関連追加(一旦すべてアクセス許可)
public function beforeFilter()
    {
        // AuthComponent の設定
        $this->Auth->loginAction = array(
            'controller' => 'users',
            'action' => 'login'
        );
        $this->Auth->logoutRedirect = array(
            'controller' => 'users',
            'action' => 'login'
        );
        $this->Auth->loginRedirect = array(
            'controller' => 'groups',
            'action' => 'index'
        );
        $this->Auth->allow();
    }

UserController

  • ログイン/アウト追加
public function login()
{
  if ($this->request->is('post')) {
    if ($this->Auth->login()) {
      return $this->redirect($this->Auth->redirect());
    }
    $this->Session->setFlash(__('Your username or password was incorrect.'));
  }
}

public function logout()
{
}
  • ログインのView
<?php
echo $this->Form->create('User', array('action' => 'login'));
echo $this->Form->inputs(array(
    'legend' => __('Login'),
    'username',
    'password'
));
echo $this->Form->end('Login');
?>

Model

UserModel

  • Acl関連ビヘイビア/メソッドなど
public $actsAs = array('Acl' => array('type' => 'requester', 'enabled' => false));

public function parentNode()
{
  if (!$this->id && empty($this->data)) {
    return null;
  }
  if (isset($this->data['User']['group_id'])) {
    $groupId = $this->data['User']['group_id'];
  } else {
    $groupId = $this->field('group_id');
  }
  if (!$groupId) {
    return null;
  } else {
    return array('Group' => array('id' => $groupId));
  }
}

public function bindNode($user) {
  return array('model' => 'Group', 'foreign_key' => $user['User']['group_id']);
}


public function beforeSave($options = array())
{
  $this->data['User']['password'] = AuthComponent::password(
    $this->data['User']['password']
  );
  return true;
}

GroupModel

  • Acl関連追記
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
  return null;
}

セットアップ

  1. ビューを設定
  2. グループ>ユーザ追加 (AROオブジェクトができる) arosテーブル
  3. ACOを作る(acos)
  4. パーミッション設定

1ビューの設定

CRUDなものは準備しておいたほうが良いかも
最低限は groupのindexとaddメソッドGroup::save()で、じどうでarosに追加される

Console/cake bake all

で一旦CRUD作ってもいいかも。(一旦元のController,Model,View逃してとかも)

2グループを追加

/groups/index
からグループ追加 > arosの追加を確認する

3AROを作る

ここからプラグインで、次のURLからDL

https://github.com/sams/alaxos_acl

READMEを参考に
– git cloneして、
– フォルダ名を’alaxos_acl’ > ‘Acl’に
– Config/bootstrap.phpに、’CakePlugin::load(‘Acl’, array(‘bootstrap’ => true));’
– Acl/Config/bootstrap.phpを編集以下を編集 ‘Group’ と ‘group_id’部分

Configure :: write('acl.aro.role.model', 'Group');

Configure :: write('acl.aro.role.foreign_key', 'group_id');
  • /admin/acl/にアクセス

  • [Actions] > [Build actions ACOs] > [Build] とオス。(acosテーブルに全Controller,Actionが追加される)

4パーミッション設定

-[Permissions] > [Roles permissions]と押すと一覧が表示される。
適切に設定して後は AppControllerの $this->Auth->allor()を消して動作確認まで

Page 25 of 47

Powered by WordPress & Theme by Anders Norén