静的なURIにするには。

しらぎくモバイルシステムはCGIですので、通常のご利用では、コンテンツは動的と思われるURIになります。

このため、URIがちょっと長くなってしまいます。

しかし、アパッチサーヴァでエクストラパスとmod_rewriteが利用出来る環境であれば、静的な短いURIにする事も可能です。

尚、この方法を実際に利用するには、第4.283版(平成19年 1月15日)以降にアップデートされる事を強く推奨します

静的なURIにするための条件。

静的なURIに読み替えるためには、CGIでは必ずエクストラパスを利用するようにして下さい。

実際の手順。

以下、

CGIの設置ディレクトリ
http://www.xxx.net/cgi/
サイトの最上位ディレクトリへの公称URI(実際のアクセスで使われるURI)
http://www.yyy.net/

とします。

  • 勿論ノード名(ドメイン部)は同じでなければなりませんが、ここでは区別し易くするためノード名を異なるものとしております。
  • 以下、強調箇所はCGIの設置ディレクトリまたはサイトの最上位ディレクトリへの公称URIです

また、HTML文書の拡張子は「.html」とします。

  1. 先ず、設定スクリプト「KConfig.pl」での設定変数$this_addr(当システムの設置アドレス)に空文字列を指定した状態で、スクリプトを設置します。

    そして、PCブラウザにCGIの設置ディレクトリのURIを入力してCGIが正常に動作している事を確かめて下さい。

    正常に動作しない場合は、設定が間違っている可能性がありますので、正しく動作するまでは次のステップに入らないようにして下さい。

    • 正常に動作しなかった場合にやり直す際には、必ずブラウザのキャッシュをクリアしてから再試行して下さい。そうしないと、失敗した時に取り込んだキャッシュを引続き表示してしまう場合があります。
  2. 正常に動作する事を確認したら、いよいよmod_rewriteに依るURI読替昨日の実装に入ります。

    まずサイト最上位ディレクトリへの公称URIとなるディレクトリに以下の内容の.htaccessを設置します。

    RewriteEngine on
    		RewriteCond %{REQUEST_URI} \/img\.cgi
    		RewriteRule (.*) 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} /[^^\/\.]+\Z
    		RewriteRule (.*) http://www.yyy.net/$1/ [R=301,L]
  3. 続いて、設定スクリプト「KConfig.pl」に於いて変数$this_addr(当システムの設置アドレス)にはこの最上位ディレクトリへのURIに変更します。

    すなわち、

    $this_addr='http://www.yyy.net/';

    と変更します。

  4. 変更した設定スクリプト「KConfig.pl」を設置し直します。
  5. 公称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]に戻して下さい。

画像が正しく表示出来ない
この場合、一番目の[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]に戻して下さい。



しらぎくモバイルシステム 運用マニュアル・記事一覧。