2019/06/18 10:40 JST

Geeklog Japan Forums

特定のページのみSSL認証で表示する方法


状態: オフライン

yuru

Forum User
Active Member
登録日: 04/25/07
投稿数: 206
http://wiki.geeklog.jp/index.php?title=特定ページのみSSL認証で表示する方法 上記ページを参考にして設定したのですが、下記の例で$site_path_non_ssl と$site_path_ssl は空白ですが、問題ないのでしょうか? 他は自分のサイトに合わせて変更したのですが、エラーで動かなかったもので。 $site_domain_non_ssl = 'http://www.geeksite.com'; $site_domain_ssl = 'https://www.geeksite.com'; $site_path_non_ssl = ''; $site_path_ssl = ''; $path_html_non_ssl = '/var/www/virtual/geeksite.com/htdocs/'; $path_html_ssl = '/var/www/virtual/geeksite.com/htdocs/';

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
実際に、以下のコードで動いているんですが・・・
PHP Formatted Code

// SSL認証で表示する <--

 // 初期値設定 <--
 $site_domain_non_ssl = 'http://www.ivywe.co.jp';
 $site_domain_ssl = 'https://www.ivywe.co.jp';
 $site_path_non_ssl = '';
 $site_path_ssl = '';
 $path_html_non_ssl = '/(public_path)/';
 $path_html_ssl = '/(public_ssl_path)/';
 // 初期値設定 -->

  $request_type = (strtolower($_SERVER['HTTPS']) == 'on' || $_SERVER['HTTPS'] == '1' || strstr(strtoupper($_SERVER['HTTP_X_FORWARDED_BY']),'SSL') || strstr(strtoupper($_SERVER['HTTP_X_FORWARDED_HOST']),'SSL')) ? 'SSL' : 'NONSSL';

  $url_current = COM_getCurrentURL();

  if( $request_type == 'SSL'){
    // SSLとしてアクセスされたら
    if(
        ( strpos($url_current , $site_path_ssl . '/staticpages/index.php/contact') !== false ) ||
        ( strpos($url_current , $site_path_ssl . '/staticpages/index.php/bill') !== false ) ||
        ( strpos($url_current , $site_path_ssl . '/staticpages/index.php/contact_rescue') !== false )
        ){
            // SSL設定
            $_CONF['site_url']       = $site_domain_ssl . $site_path_ssl;
            $_CONF['path_html']      = $path_html_ssl;
            $_CONF['path_images']    = $_CONF['path_html'] . 'images/';
            $_CONF['path_themes']    = $_CONF['path_html'] . 'layout/';
            $_CONF['path_layout']    = $_CONF['path_themes'] . $_CONF['theme'] . '/';
            $_CONF['site_admin_url'] = $_CONF['site_url'] . '/admin';
            $_CONF['layout_url']     = $_CONF['site_url'] . '/layout/' . $_CONF['theme'];
    } else {
            // non-SSL設定
            $_CONF['site_url']       = $site_domain_non_ssl . $site_path_none_ssl;
            $_CONF['path_html']      = $path_html_non_ssl;
            $_CONF['path_images']    = $_CONF['path_html'] . 'images/';
            $_CONF['path_themes']    = $_CONF['path_html'] . 'layout/';
            $_CONF['path_layout']    = $_CONF['path_themes'] . $_CONF['theme'] . '/';
            $_CONF['site_admin_url'] = $_CONF['site_url'] . '/admin';
            $_CONF['layout_url']     = $_CONF['site_url'] . '/layout/' . $_CONF['theme'];

            $url = str_replace( $site_domain_ssl, $site_domain_non_ssl, $url_current);

            header('Location: ' . $url);
    }

  } else {
    // non-SSLとしてアクセスされたら
    if(
        ( strpos($url_current , $site_path_non_ssl . '/staticpages/index.php/contact') !== false ) ||
        ( strpos($url_current , $site_path_non_ssl . '/staticpages/index.php/bill') !== false ) ||
        ( strpos($url_current , $site_path_non_ssl . '/staticpages/index.php/contact_rescue') !== false )
        ){
            // SSL設定
            $_CONF['site_url']       = $site_domain_ssl . $site_path_ssl;
            $_CONF['path_html']      = $path_html_ssl;
            $_CONF['path_images']    = $_CONF['path_html'] . 'images/';
            $_CONF['path_themes']    = $_CONF['path_html'] . 'layout/';
            $_CONF['path_layout']    = $_CONF['path_themes'] . $_CONF['theme'] . '/';
            $_CONF['site_admin_url'] = $_CONF['site_url'] . '/admin';
            $_CONF['layout_url']     = $_CONF['site_url'] . '/layout/' . $_CONF['theme'];

            $url = str_replace( $site_domain_non_ssl, $site_domain_ssl, $url_current);

            header('Location: ' . $url);
    }
  }

// 特定ページのみSSL認証で表示する -->
 

状態: オフライン

yuru

Forum User
Active Member
登録日: 04/25/07
投稿数: 206
エラーログを見てみると、「open_basedir restriction in effect.」となっていました。 サーバーの問題のようです・・・

状態: オフライン

yuru

Forum User
Active Member
登録日: 04/25/07
投稿数: 206
vhost.conf とvhost_ssl.conf を作成して、php_admin_value open_basedir を設定したら、できました。 サーバーによって色々で難しいですね Sick

状態: オフライン

Ivy

Site Admin
Admin
登録日: 01/01/04
投稿数: 5907
場所:Tokyo
そうですね。open_basedir restriction in effectはよく起こりますが、対応方法がまとまっていなかったですね。 今回のサーバーはどちらの会社のものでしょうか。 いままでにこのエラーはよく報告されていました。 1.Obitastarさんのサーバの場合の対処法: http://wiki.geeklog.jp/index.php/InstallObitastar 以下の行を公開領域のsiteconfig.phpに追加し,該当のディレクトリを757または777で作成すると、openbaseの putenv('TMPDIR='.'/var/www/virtual/○○○/private/tmp/'); あるいは,.htaccessに,以下の記述(例)を追加します。 php_value /var/www/virtual/○○○/tmp 2.PLESKの場合の対処法: http://hosting-server-rental.com/open_basedir-restriction-in-effect%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6_29.html 。。。

時刻はすべて JST , 現在の時刻は 10:40 AM

  • 通常
  • 注目トピック
  • ロック済
  • 新着
  • 注目トピック 新着
  • ロック済トピック 新着
  •  ゲストユーザの投稿を見る
  •  ゲストユーザ投稿可能
  •  一部のHTMLを許可
  •  バッドワードをチェック