web-dev-qa-db-ja.com

フックでHTTPS 301リダイレクトを強制する

私は 'テンプレートリダイレクト'機能にフックして301 httpsリダイレクトを強制しようとしています。私のパーマリンクを更新すると、httpsリダイレクトのあるhtaccessが消えるので、私はそれをhtaccessにしたくない。

そのため、この関数では、URLに 'http'がロードされている場合にリダイレクトを行いたいのですが、何も起こりません。これを手伝ってくれる人はいますか?

add_action( 'template_redirect', 'bhww_ssl_template_redirect', 1 );
function bhww_ssl_template_redirect() {
    if ( is_ssl() && !is_admin() ) {
        if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
            wp_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ), 301 );
            exit();
        } else {
            wp_redirect( 'http://' . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'], 301 );
            exit();
        }
    }
}
1
Robbert

Httpsを非常に簡単な方法で追加することができます。

  1. Wordpress管理者にログイン
  2. 設定>一般に移動します
  3. WordPressアドレス(URL)を見つけてHTTPをHTTPSに置き換える
  4. サイトアドレス(URL)を見つけてHTTPをHTTPSに置き換える
  5. クリック変更を保存

.htaccessファイルを編集して以下のコードを追加する

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} ^huepixel\.com$ [NC]
RewriteRule ^ https://www.huepixel.com%{REQUEST_URI} [L,R=301]

Wordpress-httpsプラグインをインストールして設定します。

それで全部です

0
Bikram Pahi