mod_rewriteでURLに「%2F」が入っているとエラーになる

URLを正規表現で書き換えることができるApacheモジュール「mod_rewrite」。URLをリダイレクトしたり、動的URLを静的URLに見せたりと便利に使える。

が、URLに「%2F」が入っているとエラー (404 Not found) になる。

Apache 2.0.46 以降では、httpd.conf に以下の設定をする

AllowEncodedSlashes On

と回避できる。

httpd.conf が設定できない場合やバージョン 2.0.46 以下のApacheを使っている場合では、事前に「%2F」だけを二重にURLエンコードして「%252F」と施すなどプログラム側で対策を考えたい。

関連サイト

gccをインストール (CentOS5)

Perl モジュールのインストール中。エラーに。

/bin/sh: gcc: command not found

CentOS5は、標準インストールで gcc (コンパイラ) が入っていないようだ。

コンパイラをインストール。

yum install gcc

が、

Error: Missing Dependency: kernel-headers >= 2.2.1 is
needed by package glibc-headers-2.5-42.i386 (base)

カーネルのバージョンが低く、エラーに。

kernel-headers を最新にアップデート。

cd $HOME
mkdir temp
cd ./temp
wget ftp://ftp.muug.mb.ca/mirror/centos/5.3/updates/i386/RPMS/
kernel-headers-2.6.18-164.el5.i386.rpm
rpm -ivh kernel-headers-2.6.18-164.el5.i386.rpm

検索して

rpm -qa | grep kernel

kernel-headers-2.6.18-164.el5 があれば、アップデート完了。

改めて、

yum install gcc

すると、

Complete!

gccのインストール完了。

ターミナルでSSH (Mac OS X)

サーバを遠隔から操作するためにはSSHでネットワークから接続することが必要になります。特にホスティングサービスを利用して専用サーバへの接続がリモートによる遠隔操作しか許可されていない場合。データセンターに直接入れない場合はなおさら。データセンターが海外にある場合はさらに。

SSH (Secure Shell) とは、

暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。

接続方法は、ターミナルを起動します。

$ ssh -l ユーザID ホスト名

または、

$ ssh ユーザID@ホスト名

と入力。

SSHで接続するポート番号はデフォルトでは 22 ですが、別のポート番号で接続する場合は、

$ ssh -p ポート番号 -l ユーザID ホスト名

または、

$ ssh -p ポート番号 ユーザID@ホスト名

とオプションを追加。

初めてのログインの場合

The authenticity of host 'ホスト名 (***.***.***.***)' can't be established.
RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Are you sure you want to continue connecting (yes/no)? yes

と表示。yesと入力。

ユーザID@ホスト名's password:

パスワードを入力。

Last login: Thu Oct 29 14:01:36 2009 from ***.***.com

ログイン完了。

以上でサーバに接続できます。

最近の投稿

カテゴリー

アーカイブ