URLのhttps化とwww無しをまとめてリダイレクトさせる設定

Filed under: .htaccess — kdcs @ 2025年12月16日 火曜日

.htaccessでSSL化のためにリダイレクトの設定をしているURLがwww付きだった場合に、このURLをwww無しにするリダイレクトを追加すると別々に記述してしまうと2回リダイレクトが発生してしまうことがあるため、まとめて1回の処理で終わらせる設定。

まとめた記述

<IfModule mod_rewrite.c>
RewriteEngine On

# HTTPS + www除去をまとめて処理
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
</IfModule>

解説
RewriteCond %{HTTPS} off [OR] → HTTPSでない場合にマッチ。
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] → ホスト名が www. で始まる場合にマッチ。
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] → %1 は (.+) のキャプチャ部分(つまり www. を除いたドメイン名)。 → これで「http://www.example.com」でも「http://example.com」でも、最終的に https://example.com/ に一発で飛ぶ。

メリット
リダイレクトは 1回だけ → 無駄なチェーンが発生しない。
記述がシンプル → 管理しやすい。
SEO的にも最適 → 正規URLに直接到達できる。

別々の記述

<IfModule mod_rewrite.c>
RewriteEngine On

# --- HTTPS強制 ---
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# --- www除去 ---
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
</IfModule>

URLのwww付きをwww無しに変更する時の.htaccessのリダイレクト設定

Filed under: .htaccess — kdcs @ 2025年12月15日 月曜日

URLのwww付きをwww無しに変更する時の.htaccessのリダイレクト設定

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

これを.htaccessの先頭に記述する

favicon(ファビコン)やスマホなどのお気に入りアイコン

Filed under: 未分類 — kdcs @ 2025年12月15日 月曜日

推奨記述例

<link rel="icon" href="/favicon.png" type="image/png" sizes="32x32">
<link rel="icon" href="/favicon.ico" type="image/x-icon">

.png は高解像度対応に便利。
.ico は古い環境や一部の場面でまだ使われることがあるので、両方用意すると安心。

従来の「shortcut icon」は Internet Explorer 独自の拡張で、標準仕様ではない。
現在の主要ブラウザ(Chrome, Firefox, Safari, Edge)はすべて 「icon」を解釈。
W3C仕様でも正式に定義されているのは「icon」。

WordPress6.9で「global-styles」を出力させない方法

Filed under: functions.php,wordpress — kdcs @ 2025年12月14日 日曜日

WordPress 6.9 では「global-styles」の出力方法が変更され、従来の wp_dequeue_style(‘global-styles’) が効かなくなったため「remove_action」で対応する方法。

functions.php

// wp_headで出力される'global-styles'を停止する(wp6.9~)-------------------------
add_action( 'wp_loaded', function() {
    remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
    remove_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
});

固定ページとカスタム投稿タイプのスラッグが同じだと問題あり

Filed under: functions.php,wordpress — kdcs @ 2025年12月9日 火曜日

例で説明
固定ページに「bridal」というパーマリンクを付けた場合にカスタム投稿タイプも「bridal」で作ってしまうと競合してしまい、その結果https://~hogehoge/bridalでアクセスするとbridalのアーカイブテンプレートに飛ばされてしまい、固定ページが表示されない。

解決方法
「bridal」を固定ページで使う場合、「カスタム投稿タイプ bridal」のアーカイブページを別に指定してやると競合しない。

こちらを入れる
archiveを「bridal-list」などに書き換える

            'rewrite' => array('slug' => 'bridal-list'),
            'has_archive' => 'bridal-list',

こちらは通常のカスタム投稿タイプ作成

add_action('init', 'add_bridal_post_type');
function add_bridal_post_type() {
    $params = array(
            'labels' => array(
                    'name' => 'ブライダルプラン',
                    'singular_name' => 'ブライダルプラン',
                    'add_new' => '新規追加',
                    'add_new_item' => 'ブライダルプランを新規追加',
                    'edit_item' => 'ブライダルプランを編集する',
                    'new_item' => '新規ブライダルプラン',
                    'all_items' => 'ブライダルプラン一覧',
                    'view_item' => 'ブライダルプランを見る',
                    'search_items' => '検索する',
                    'not_found' => 'ブライダルプランが見つかりませんでした。',
                    'not_found_in_trash' => 'ゴミ箱内にブライダルプランが見つかりませんでした。'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array(
                    'title',
                    'editor',
                    'author',
                    'custom-fields',
                    'thumbnail',
            ),
            'taxonomies' => array('bridal_category','bridal_tag')
    );
    register_post_type('bridal', $params);
}

こちらが対策後

add_action('init', 'add_bridal_post_type');
function add_bridal_post_type() {
    $params = array(
            'labels' => array(
                    'name' => 'ブライダルプラン',
                    'singular_name' => 'ブライダルプラン',
                    'add_new' => '新規追加',
                    'add_new_item' => 'ブライダルプランを新規追加',
                    'edit_item' => 'ブライダルプランを編集する',
                    'new_item' => '新規ブライダルプラン',
                    'all_items' => 'ブライダルプラン一覧',
                    'view_item' => 'ブライダルプランを見る',
                    'search_items' => '検索する',
                    'not_found' => 'ブライダルプランが見つかりませんでした。',
                    'not_found_in_trash' => 'ゴミ箱内にブライダルプランが見つかりませんでした。'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array(
                    'title',
                    'editor',
                    'author',
                    'custom-fields',
                    'thumbnail',
            ),
            'taxonomies' => array('bridal_category','bridal_tag'),
            'rewrite' => array('slug' => 'bridal-list'),
            'has_archive' => 'bridal-list',
    );
    register_post_type('bridal', $params);
}

サイト内検索

カテゴリー

最近の投稿

↑上に戻る