本日はapacheのmod_rewriteについて。get句に郵便番号を付けて、住所を出力するWEBプログラムがあるとします。この場合、そのままだとhttp://sampledomain.com/sampleapp/public/address.php?zip=1048404ですが、こういったURLをhttp://sampledomain.com/sampleapp/public/address/1048404でアクセスしたいとします。こんな時に必要になるのがhttp://sampledomain.com/sampleapp/public/address/1048404でアクセスし、内部でhttp://sampledomain.com/sampleapp/public/address.php?zip=1048404と書き換える機能です。これはapacheのmod_rewriteというモジュールで行います。Apache2.4系を前提に説明します。(検索するとこれ以前のものが多く出てきますんで逆に2.4以前のものの情報には困らないかと思います。)一応過去のブログを参考リンクに。注意点mod_rewrite/etc/httpd/conf.modules.d/00-base.confここに下記のようにモジュールが組み込まれていればOKです。Modulesのなかにmod_rewriteが書かれていればOKです。デバッグURLのrewriteの場合、プログラムと違って中がどうなっているのかを把握するのが難しいので情報をログから取るしかありません。ログへの出力の抑制などは下記を/etc/httpd/conf/httpd.confにかいてあげればOKです。rewrite:trace8※注意点としては先ほどのmodule読み込みよりも後に書かないと反映されません。どのくらいの情報を出力できるかをコントロールできます。出力レベルはdebug~emergeまであります。具体的には下記を参照http://httpd.apache.org/docs/2.4/ja/mod/core.html#loglevelまたrewriteの情報も出力レベルが1~8まであり、数字が大きいほど詳しいです。ログのパスなどは2.4系では自動的にapacheのerror_logに吐かれます。具体的なURLのrewriteはアプリのディレクトリ直下に.htaccessをおいてこれで管理することがほとんどですので、.htaccessが機能するようにしておきましょう。.htaccess具体的なrewriteなどはアプリのディレクトリ直下のhtaccessに記述することが多いです。今回のケースの場合、/var/www/html/sampleapp/public/address.phpにプログラムがあるとすると、htaccessのパスは/var/www/html/sampleapp/.htaccessになります。ここで下記のように記述します。#ここでrewriteをOnにします。#下記でリダイレクトをします。#mod_rewriteがあればという意味#ここでrewriteをOnにします。On#下記でリダイレクトをします。public/address\.php?zip=$1</IfModule>具体的なrewriteのルールを知りたい場合は以前も紹介しましたが、下記のリンクが詳しいです。https://murashun.jp/blog/20141229-01.html#chapter-199http://oxynotes.com/?p=7392#5http://ysklog.net/mod-rewrite/rewrite-base.htmlログには具体的に下記のようにリダイレクトが吐かれます。リダイレクトがうまくいっていないときはここで一回一回確認しましょう。/var/www/html/sampleapp/public/address.phpmod_rewriteのウェブサービスまだリダイレクトをすぐに調べられるサービスもあるようなのでこれを活用するのもいいと思います。http://www.generateit.net/mod-rewrite/index.phpまずはサンプルのURLをいれて挙動を確認してみましょう。.htaccessを自動で吐いてくれます。http://htaccess.madewithlove.be/get句を含んだURLとhtaccessの記述内容に合致しているかをすぐに判定してくれます。注意点htaccessの場合、一度設定するとブラウザがキャッシュしてしまい、書き換えてもなかなか反映されないことが多いです。その場合、ただのリロードや一般的なリロード(F5/Ctrl+F5)では解決しないことが多いです。chromeでは以下のステップでキャッシュをクリアできます。F12で開発ツールを出すURLバーの横にあるマークを長押しキャッシュの消去とハードの再読み込みhttp://cms.aiosl.jp/manual/kowaza/1077/ちなみにIEとfirefoxでは地道に設定画面からキャッシュをクリアするしかないようです。コメントをキャンセルメールアドレスが公開されることはありません。今回から数回に分けてメール送信の仕組みについて学習していこうと思います。SESについて(Route53登録→SESで受信→S3で保存)本日はAWSのSESのメモ。2019年はJavaScriptとAWSを勉強する、と心に決め、JavaScriptの方は色々勉強しましたが、AWSの方が手付かずでした。OSに対する命令文を不正に紛れ込ませて攻撃させる手法。...任意のログファイルのログローテションについて本日は自作のログファイルをうまくローテーションさせる方法について。自作でログを作っておりますと、日がたつにずれどんどんと容量が膨らんでいきます。...シェル基礎2シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。