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

Filed under: .htaccess — kdcs @ 25年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 @ 25年12月15日 月曜日

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

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

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

WordPress 5.5から実装された「勝手に生成されるwp-sitemap.xml」の対処法

Filed under: .htaccess,functions.php,wordpress,WP迷惑機能 — kdcs @ 22年7月20日 水曜日

WordPress5.5から自動的にサイトマップが生成されるようになり迷惑。
wp-sitemap.xmlを無効化する方法とリダイレクトさせる方法

function.phpに記述
こちらを記述するとwp-sitemap.xmlが404エラーになる

add_filter( 'wp_sitemaps_enabled', '__return_false' );

完全にサイトマップ機能を無効化したい場合はこちらも記述
※2022.7.20現在 未検証

remove_action( 'init', 'wp_sitemaps_get_server' );

既存のサイトマップ(Googleに検出させたいサイトマップ)にリダイレクトさせる
/wp-sitemap.xml → /sitemap.xml

.htaccessに記述

Redirect 301 /wp-sitemap.xml https://example.com/sitemap.xml

ウェブサイトのSSL化「.htaccess」記述など

Filed under: .htaccess — kdcs @ 17年7月21日 金曜日

ウェブサイトをSSL化すると「http」から始まるURLは「https」となるためwordpressなどは設定の変更が必要になる。
javascriptやcss・画像などを外部ファイルから読み込む際は、絶対パスを記述している場合は「https://~」に書き換えが必要。

閲覧ユーザーは変更前の「http://~」でアクセスするので.htaccessでhttpからhttpsにリダイレクトさせる
※SSL化後は、名刺や広告物のURLもhttps://~とする必要がある

◆ .htaccessへの記述

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

SSL化前のページ評価を引き継ぎたい場合(多くの場合こちら)301リダイレクトさせます

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

WordPress版

# BEGIN SSL-HTTPS
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
</IfModule>
# END SSL-HTTPS

◆ wordpress設定>一般「WordPress アドレス (URL)」「サイトアドレス (URL)」を https://~に変更

サイトの下層ディレクトリにWordPressを設置している場合、ルートディレクトリにある.htaccessの記述が効かないことがあるので、その場合は、wordpressフォルダ内の.htaccessに記述が必要

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/blog/$1 [R=301,L]

◆ googleアナリティクスの設定
2017.7.21時点

左メニュー「管理」(歯車アイコン)クリック
プロパティ → プロパティの設定から、ウェブサイトのURLのhttpをhttpsに変更 → 保存
ビュー→ ビューの設定から、ウェブサイトのURLのhttpをhttpsに変更 → 保存

◆ google search console

1. https://xxxx.comなど、サイトを1から登録し直す。
2. サイトの所有権を確認する
3. サイトマップの送信をする
4. https://www.xxxx.comなど、「www」付きでサイトを登録する。
5. www付きの所有権も確認する。
6. サイトマップの送信をする
7. www付きか、なしか優先するバージョンを選ぶ
8.対象の国を「日本」に変更

wpで狙われやすいxmlrpc.php

Filed under: .htaccess,wordpress — kdcs @ 15年6月16日 火曜日

wordpressが攻撃を受けやすいファイル「xmlrpc.php」
「リモート投稿」やpingbackなどの為のファイルらしいが
その必要が無ければ無効にしておいた方が無難

.htaccessへの記述で無効なIPにリダイレクトさせる記述

RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]

これをファイルに書き込みます

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

サイト内検索

カテゴリー

最近の投稿

↑上に戻る