HTACCESSにある#で始まる行につきまして、また、この行を消してもいいのかについて解説いたします。

HTACCESSの#行は何?

ワードプレスのトップフォルダには、パーマリンク等の設定が書き込まれている.htaccessというファイルが一般的に存在します。
このファイルは、Apacheというサーバーソフトウェアの設定を書くものです。(ない場合もありますがこの場合は各ページのリンクURLが?p=数字 のような形になります)

下記はワードプレスのHTACCESSの初期設定の例です。(プラグインやテーマがSEO関連の設定や、セキュリティー関連の設定を書き込んでいる場合もございます)

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

このコードは基本的には単純な内容で、ユーザーがアクセスしてきたURLに何もファイルが存在しない場合はindex.phpにそのアクセスを(URLはそのままで)集約するという意味になります。
ワードプレスはindex.phpを起点にしてサイトの描画処理を行いページのHTMLを返答します。

こちらの設定に # BEGIN WordPress # END WordPress 等の記載が見えますが、
htaccessは行頭に#がある行はコメントとして扱い、サーバーの設定としては無視します。

この為、# BEGIN WordPress # END WordPress 等の文字列は設定としては使用されていませんので、消してもなにもサーバー上に効果は及ぼしません。

#の行はコメントではあるものの消さない方が良いです

ただ、# BEGIN WordPress # END WordPress はワードプレスがどこからどこまでが、自分が書き込んだ設定かを判定するために使用されています。
他のプラグインやテーマも自分の設定をこのような# 設定名 でどこからどこまでが自分の設定かをプログラム上判断することが多い為、この行を消してしまうと下記のようなプラグラム上やHTACCESSへの設定記載上のバグが引き起こされる場合がございます。

・設定が2重に書き込まれてしまう

・設定の終端がプログラム側で判断できず#以下の設定を消してしまう、もしくhtaccessの設定の論理構造が壊れてしまう

→ 結果としてサイトの表示不全や500エラー、リンクがつながらない等の障害が起こることがございます。

この為#の行はコメントではあるものの消さない方が無難です。

#の設定を消してしまった場合は?

HTACCESSの#の設定を消してしまい、サーバーにエラーが引き起こされた場合の対処方法は状況によりまして、千差万別とはなるものの、一般的には下記のような流れで復旧できることが多いです。

1 サーバーにFTPソフトウェアで接続し、.htaccessファイルをリネームしていったん無効にします

2 ワードプレスの管理画面にログインいただきパーマリンク設定を(そのまま)再保存します
(この事で初期設定のワードプレスのHTACCESSファイルが再度書き出されます)

3 プラグインの設定も再保存します。(ただ、設定の再保存で完全な設定が復元しないこともありますので、この場合はプラグインの停止、再有効化、再設定を必要とする場合もございます。プラグインの停止等を行われる場合はサイトのフルバックアップをお勧めいたします)

ご参考になりましたら幸いです。

WordPress ワードプレスのバグやエラーの修正のご依頼・ご相談はWPドクターまでお気軽にお送りください