静的なURIにするには。
- コードを全面的に刷新した後継作・しらぎくモバイルシステム VIが公開されました。
今後、新規にモバイルサイトを構築される方には、しらぎくモバイルシステム VIのご利用を強く推奨いたします。
- しらぎくモバイルシステム VIは従来のしらぎくモバイルシステムとの互換性はありません。
- このため、制作者は当面従来のしらぎくモバイルシステムについても、適宜アップデートを続けていく予定です。
- PC向けに書かれたフル規格のHTML文書に対しては、しらぎくモバイルシステムFULL(開発名・HOMAKI & NAKAMA)をご利用ください。
- 利用出来るサーヴァが限られておりますが、絵文字の変換さえ出来れば良いと言う方には、ドコモ端末の絵文字を変換するだけのスクリプト・しらぎく絵文字変換スクリプトもお勧めしております。
しらぎくモバイルシステムはCGIですので、通常のご利用では、コンテンツは動的と思われるURIになります。
このため、URIがちょっと長くなってしまいます。
しかし、アパッチサーヴァでエクストラパスとmod_rewriteが利用出来る環境であれば、静的な短いURIにする事も可能です。
- IISサーヴァなどでは実現出来ないかも知れません。
- また、アパッチサーヴァでも、mod_rewriteが利用出来ない設定になっている場合には静的なURIにする事は出来ません。
尚、この方法を実際に利用するには、第4.283版(平成19年 1月15日)以降にアップデートされる事を強く推奨します。
静的なURIにするための条件。
静的なURIに読み替えるためには、CGIでは必ずエクストラパスを利用するようにして下さい。
- エクストラパスを利用出来ない場合、正常な内部URIの処理が出来なくなります。
実際の手順。
以下、
- CGIの設置ディレクトリ
- http://www.xxx.net/cgi/
- サイトの最上位ディレクトリへの公称URI(実際のアクセスで使われるURI)
- http://www.yyy.net/
とします。
- 勿論ノード名(ドメイン部)は同じでなければなりませんが、ここでは区別し易くするためノード名を異なるものとしております。
- 以下、強調箇所はCGIの設置ディレクトリまたはサイトの最上位ディレクトリへの公称URIです
また、HTML文書の拡張子は「.html」とします。
- 先ず、設定スクリプト「KConfig.pl」での設定で変数
$this_addr(当システムの設置アドレス)に空文字列を指定した状態で、スクリプトを設置します。そして、PCブラウザにCGIの設置ディレクトリのURIを入力してCGIが正常に動作している事を確かめて下さい。
正常に動作しない場合は、設定が間違っている可能性がありますので、正しく動作するまでは次のステップに入らないようにして下さい。
- 正常に動作しなかった場合にやり直す際には、必ずブラウザのキャッシュをクリアしてから再試行して下さい。そうしないと、失敗した時に取り込んだキャッシュを引続き表示してしまう場合があります。
- 正常に動作する事を確認したら、いよいよmod_rewriteに依るURI読替昨日の実装に入ります。
まずサイト最上位ディレクトリへの公称URIとなるディレクトリに以下の内容の.htaccessを設置します。
RewriteEngine onRewriteCond %{REQUEST_URI} \/img\.cgiRewriteRule (.*) http://www.xxx.net/cgi/$1 [L]RewriteCond %{REQUEST_URI} \.html$ [OR]RewriteCond %{REQUEST_URI} \.html\?RewriteRule (.*) http://www.xxx.net/cgi/K.cgi/$1 [L]RewriteCond %{REQUEST_URI} /$ [OR]RewriteCond %{REQUEST_URI} /\?RewriteRule (.*) http://www.xxx.net/cgi/K.cgi/$1 [L]RewriteCond %{REQUEST_URI} /[^^\/\.\?]+\?RewriteRule ([^\?]*)\?(.*) http://www.yyy.net/$1/?$2 [R=301,L]RewriteCond %{REQUEST_URI} \?RewriteRule (.*) http://www.xxx.net/cgi/K.cgi/$1 [L]RewriteCond %{REQUEST_URI} /[^^\/\.]+\ZRewriteRule (.*) http://www.yyy.net/$1/ [R=301,L] - 続いて、設定スクリプト「KConfig.pl」に於いて変数
$this_addr(当システムの設置アドレス)にはこの最上位ディレクトリへのURIに変更します。すなわち、
$this_addr='http://www.yyy.net/';
と変更します。
- 変更した設定スクリプト「KConfig.pl」を設置し直します。
- 公称URIでアクセスしてみて、リンクや画像表示が正しく機能している事を確かめて下さい。
トラブルシューティング。
- 正常にHTMLさえ表示されない
- この場合、.htaccessの記述が正しくないか、URIが間違っているなどが考えられます。
先ず、.htaccess内に四つある
[L]の内、二番目から四番目の三つを[R,L]に書き換えて、正常にCGIのURIに書き換えられているかどうかを確かめて下さい。- 上記の例ではhttp://www.yyy.net/hoge.htmlと入力すると
http://www.xxx.net/cgi/K.cgi/hoge.htmlにリダイレクトされなければなりません。
- 再試行する際には、必ず一度ブラウザのキャッシュをクリアしてから行って下さい。そうでないと、失敗した時に取り込んだキャッシュがそのまま表示されてしまう場合があります。
.htaccessを修正するなどして正常に動作した場合は、
[R,L]を三つとも[L]に戻して下さい。 - 上記の例ではhttp://www.yyy.net/hoge.htmlと入力すると
- 画像が正しく表示出来ない
- この場合、一番目の
[L]を[R,L]に書き換え、「公称ディレクトリのURI/img.cgi」が正しく「CGI設置ディレクトリ/img.cgi」にリダイレクトされる事を確かめて下さい。- 上記の例ではhttp://www.yyy.net/img.cgiと入力すると
http://www.xxx.net/cgi/img.cgiにリダイレクトされなければなりません。
.htaccessを修正するなどして正常に動作した場合は、
[R,L]を[L]に戻して下さい。 - 上記の例ではhttp://www.yyy.net/img.cgiと入力すると