bass-inu's blog

非IT企業Web担当者だった無職の雑記

htaccessで正規表現を使ったリダイレクト -フォルダ分け-

※Qiitaにも書いた
htaccessで正規表現を使ったリダイレクト - Qiita


サイトの移転や構成を変えた時に使用するリダイレクト。
今回はディレクトリを丸ごと移動した時用のhtaccessメモ。

今まで「西暦+月」でディレクトリを作っていた

/201001/
/201002/
:
:
/201201/
/201202/
:
:

当たり前ですがだんだんフォルダ数が多くなってきて面倒くさい感じに。

こうしたい

/2010/01/
     /02/
:
:
/2012/01/
     /02/
:
:     

これで管理がラクに…!
ということでサイト内お引越し開始。
フォルダを移動させ終わって、あとは古いURLにアクセスがあった際に新しいURLへ転送されるようにする。

.htaccessにこの1行。

RedirectMatch permanent ^/(2010|2011|2012)([0-9]{2})/(.*)$ /$1/$2/$3

これで完了。
この例だと2010~2012年分のフォルダにのみ適用される。

2000年~20XX年までリダイレクトしたいとき

RedirectMatch permanent ^/(20[0-9]{2})([0-9]{2})/(.*)$ /$1/$2/$3

2000年以前のディレクトリもあるとき

RedirectMatch permanent ^/([0-9]{4})([0-9]{2})/(.*)$ /$1/$2/$3

サイトのURLも変わった時

RedirectMatch permanent ^/([0-9]{4})([0-9]{2})/(.*)$ http://移転先URL/$1/$2/$3


基本の形

RedirectMatch permanent 移転前パス 移転後パス


今回のリダイレクトの中身

移転前→ ^/([0-9]{4})([0-9]{2})/(.*)$
移転後→ /$1/$2/$3

正規表現数字4桁,数字2桁,全ての文字列 となっています。
この中身を変えれば色々できますね。


その他htaccessに関する記事

Codecademy始めました

はてダからはてブロに引越しました!
と言ってもクリックしただけ(笑)便利ですね~。

最近はJavaScriptをちゃんと勉強しようと思い、ウェブ上で勉強できるCodecademyを始めてみました。
コードの書き方を学ぼう | Codecademy
f:id:bass-inu:20120930204138p:plain
日本語化されてるはずなんですが…なぜか英語でしか表示されない…

問題が出されてそれに回答していくのですが、全部英語なので大変です。
まだまだ先は長そうですが、ぼちぼちやろうと思います。

twitterの新しいウィジェットをカスタマイズしたメモ

新しくなったという事で。
Twitterブログ: サイト向けに「埋め込みタイムライン」ができました
ウィジェット上から直接リツイートやお気に入り、フォローなどが出来るようになってます。

作成方法

こちらから簡単に設定&作成ができる。

この設定…「高さ」はあるのに「横幅」の項目がない…。
公式ドキュメントを見ると、
Embedded Timelines | Twitter Developers
作成されたコードのaタグ内に設定を追記すると指定できるとのこと。
さっそく、width="700"と打ち込んだらことごとく無視されましたよ。。


よく見たら横幅は220px〜520pxと書いてあった。
高さは350px以上しか設定できません。


700pxじゃなきゃやだー!!と思ったので
ウィジェット設置後のHTMLを確認(firefoxアドオンのfirebugで)

<iframe id="twitter-widget-1" scrolling="no" frameborder="0" classname="twitter-timeline twitter-timeline-rendered" style="border: medium none;" width="520" height="350">

こう出力されていますね。この中の

id="twitter-widget-1"

これを利用すればいけるんじゃ…?!


cssを書きます。

<style type="text/css">
#twitter-widget-1 {width:700px;}
</style>

これで無事700pxで表示されました!
無理矢理な感じがありますが…。

そのうち自由に設定できるようになるんでしょうか…?


あとさぁ…

日付表示がちょっとおかしいです。
9月月5日 (゚Д゚;
これはそのうち直るよね、きっと…


追記:直りました!

翻訳ファイル「.mo」「.po」の編集

LimeSurveyという超高機能アンケートシステムを設置中。
海外産のシステムですがデフォルトで日本語化されてて助かる。
しかしところどころ日本語訳を変えたい箇所があったので、言語ファイルをいじろうとしたら「.moファイル」が手持ちのエディタで開けない!
何コレ?!


そんなわけでメモ。

Poeditをダウンロードしてインストール

ここからWindows版をダウンロード

Poedit: Download

コマンドプロンプトで.moを.poに変換

.poに変換すればエディタで開けるみたいなのでコマンドプロンプト起動。
インストールしたPoeditフォルダの中の「bin」フォルダに移動する。

cd C:\Program Files\Poedit\bin

続いて.moを.poへ変換。
Win7でデスクトップにmoファイル(ja.mo)を置いていて、同じ場所にpoファイル(ja.po)を出力したい場合…

msgunfmt.exe "C:\Users\(ユーザー名)\Desktop\ja.mo" -o "C:\Users\(ユーザー名)\Desktop\ja.po"

poファイルを編集

Poeditでも手持ちのエディタでも開けるので、編集して保存

poファイルをmoファイルへ変換

もとに戻す。
同じくデスクトップに出力する場合。ちなみに元あったmoファイルはリネームしといた。

msgfmt.exe "C:\Users\(ユーザー名)\Desktop\ja.po" -o "C:\Users\(ユーザー名)\Desktop\ja.mo"

完了!

MySQLを自動でバックアップしてメール送信するメモ

データベースのバックアップを自動で行いバックアップファイルをメール添付してくれるスクリプトを探していたら、ありました。
phpMyBackupPro - the MySQL backup tool :: Features

設置〜データベース設定

まずこちらからファイルをダウンロードさせていただきました。
phpMyBackupProを日本語化してみました | My MODX Site

アップロードしてconfig.phpにアクセス。
データベース情報やメール送信先を設定。

設定ファイルとバックアップフォルダの移動

セキュリティのために、「global_conf.php」と「export」フォルダをドキュメントルートより上に移動させます。
そのあと、「definitions.php」の28,29行目を修正

$_PMBP_GLOBAL_CONF="../../global_conf.php";
$_PMBP_EXPORT_DIR="../../export/";

移動後の場所を相対パスで指定します。

cronを設定

シックスコアの場合

cron設定したらすぐ動いた。
cronコマンドは以下

php /home/アカウント名/ドメイン名/public_html/phpMyBackupPro/backup.php データベース名1,データベース名2 1 1 1 1
ヘテムルの場合

まずシェルスクリプトを作成する。backup.shという名前にした。

#!/bin/sh

cd /home/sites/heteml/users/h/o/g/hoge/web/phpMyBackupPro/
/usr/local/bin/php53 ./backup.php データベース名 1 1 1 1

exit

backup.phpの1行目に以下を追記

#!/usr/local/bin/php53

そして両ファイルのパーミッションを「700」にする。


cron設定の実行ファイルフルパスに以下を入力

/backup.sh


これでcronで設定した日時に自動でexportフォルダにデータが保存されて、メールでも送られてきます。
ブラウザでほとんどの設定ができるし、手動でもバックアップ可能なので便利ですね〜。