8ページ目

サイトメンテナンスに使った.htaccess設定

Wordpressを利用したサイトに不正なコードが挿入されており、他社からの依頼でそのサイトをメンテナンスする際に利用した.htaccess設定。本来であればオフラインにして修復すべき。


admin.htmlにアクセスするとCookieが設定され、通常通りサイトにアクセスが可能。サイトの再審査用にGooglebotもアクセス可能にする。その他のアクセスはメンテナンス中ページに転送する。


.htaccess


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(phpMyAdmin|admin.html|maintenance.html)
RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]
RewriteCond %{HTTP_COOKIE} !user=admin
RewriteRule ^.*$ /maintenance.html [R=302,L]

レスポンシブWebデザイン採用サイトでのzenback利用サポート

ソーシャルボタンとFacebookのコメント欄により問題が発生する。とりあえず以下のコードで対処可能。


ちなみに、個人的にはzenbackは好きではない。


JavaScript


IE8以下はRWD対応にする気がないので除外。


window.jQuery && (function ($) {
    (function () {
        var zb_pcc_checker;

        if (typeof window.attachEvent === "object" || $(window).width() > 480) {
            return;
        }

        zb_pcc_checker = setInterval(function () {
            var loadChekerId,
                loadCheker;

            loadCheker = function () {
                var $target = $("#zenback-facebook-comment");    // 存在調査のため毎回収集しなおす
                if ($target.length) {
                    $target.find(".fb_iframe_widget").removeAttr("width");
                    $target.find(".fb_iframe_widget > span").css("width", "auto");
                }
            };

            if (window.zb_pcc) {
                clearInterval(zb_pcc_checker);
                loadCheckerId = setInterval(loadCheker, 250);
            }
        }, 200);
    }());
}(jQuery));

CSS


zenbackのスタイル付けを上書きするためにくどいセレクタになっている。


#zenback-widget #zenback-social-button .zenback-module-item{
display:inline-block;
*display:inline;
zoom:1;
}

インデックステンプレートで記事を年別にグループ化

例えばプレスリリースや新着情報のインデックスページで、記事を年別にグループ化(見出しに2012年などを置き、テーブルで2012年の記事をリストアップ)して表示したい場合に利用する。年別アーカイブを作るほど記事数がない場合に利用する。


MTML


<h1 class="hdg-category">プレスリリース</h1>
<$mt:SetVar name="currentYear" value="0"$>
<$mt:SetVar name="tableOpen" value="false"$>

<mt:Entries sort_by="authored_on" sort_order="descend">
<$mt:EntryDate format="%Y" setvar="year"$>
<mt:If name="year" ne="$currentYear">
<mt:If name="tableOpen" eq="true">
</tbody>
</table>
</section>
</mt:If>
<section>
<h2 class="hdg-l2-02"><$mt:Var name="year"$>年</h2>
<table class="tbl-02">
<tbody>
<$mt:SetVar name="currentYear" value="$year"$>
<$mt:SetVar name="tableOpen" value="true"$>
</mt:If>
<tr>
<th class="date"><$mt:EntryDate format="%Y年%m月%d日"$></th>
<td><a href="<$mt:EntryPermalink abs2rel="1">"><$mt:EntryTitle$></a></td>
</tr>
</mt:Entries>
</tbody>
</table>
</section>

Webページのローカルナビ設置例

表示しているページが属するディレクトリはディレクトリ名に加えページリストを列挙、その他はディレクトリ名のみ列挙するローカルナビの例。


MTML


<$mt:SetVar name="blogdir" value="/foo/"$>
<mt:SetVarBlock name="currentdir"><mt:PageFolder><$mt:FolderBasename$></mt:PageFolder></mt:SetVarBlock>
<ul>
<mt:TopLevelFolders>
<$mt:FolderBasename setvar="dir"$>
<li<mt:If name="dir" eq="$currentdir"> class="active"</mt:If>><a href="<$mt:GetVar name="blogdir"$><$mt:FolderPath$>"><$mt:FolderLabel$></a>
<mt:If name="dir" eq="$currentdir">
<mt:Pages sort_by="title" sort_order="ascend">
<mt:PagesHeader>
<ul>
</mt:PagesHeader>
<li><a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a></li>
<mt:PagesFooter>
</ul>
</mt:PagesFooter>
</mt:Pages>
</mt:If>
</li>
</mt:TopLevelFolders>
</ul>