モンスターカレンダー

« 2010年11月 
123456789101112131415161718192021222324252627282930

2010年11月29日アーカイブ

xoopsで、ログインやマイアカウント、問い合わせページをSSL化。

 ↓このモジュールを使ってみた。

どこでもSSL SSL/非SSL自動切替版 anywhereSSL

 

●不具合が1点。

サイズの大きいページが出力されない。

→内部的に使用している preg_replace の長さ制限にひっかかっていた。

この関数のマニュアルページのコメントを参考に、include/buffering.inc.php を以下のように修正した。

(修正前)

   $buf = preg_replace( $pattern, $replacement, $buf );

(修正後)

     $iSet= 0;  // Count how many times we increase the limit
     while( $iSet< 10 ) {
         $sNewText= preg_replace( $pattern, $replacement, $buf );  // Try to use PREG

         if( preg_last_error()== PREG_BACKTRACK_LIMIT_ERROR ) {  // Only check on backtrack limit failure
             ini_set( 'pcre.backtrack_limit', (int)ini_get( 'pcre.backtrack_limit' )+ 30000 );  // Get current limit and increase
             $iSet++;  // Do not overkill the server
         } else {  // No fail
             $buf = $sNewText;  // On failure $sNewText would be NULL
             break;  // Exit loop
         }
     }

 

●もう1点。表示上の不具合ではないが、SEOでNGなんだそうで。

Cookieに情報を書き込むため、初回アクセス時、同じURLにリダイレクトしている。
この時にステータスが302となるが、検索エンジンでは拾ってくれなくなる。

→ とりあえずリダイレクトを外してみた。運用後1ヶ月弱だが、今のところは不具合はない。

include/precheck.inc.php 下記、一番下、headerをコメント化。

     //*****************************************************************/
     // ログイン処理時のみ、XOOPS_ROOT_PATH/include/checklogin.phpをinclude
     //*****************************************************************/
     if ( ($_SERVER['SCRIPT_FILENAME'] === XOOPS_ROOT_PATH .'/user.php') &&
      ($_SERVER['REQUEST_METHOD'] === 'POST') &&
      (!empty($_POST['op']) && $_POST['op'] === 'login') ) {
      include_once( XOOPS_ROOT_PATH.'/include/checklogin.php' );
      exit;
     }
     //header( "Location: " .$current_url );

 

このモジュール、あまり情報がないようです。使われていないのか...? xoops SSL化のスタンダードってなんだろう。