お名前.comのSDサーバでパーマリンク設定を有効にする方法

デフォルトのパーマネントリンクだと問題なく作動するのにもかかわらず、別の設定に変更するとトップページ以外が404エラーになってしまうという怪現象に悩まされた方は多いのではないでしょうか?

これは.htaccessというファイルが原因の場合が多いようです。
また、この問題は環境により対策方法が違いますので、この記事内ではお名前.comのSDサーバーを使用していることを追記しておきます。

.htaccessファイルとは?

例えば、「サーバ上にあるけれど画像などを入れた特定のフォルダにアクセスできないようにしたい」とか「サイトを引っ越してURLが変わってしまったので新しいURLに飛ばしたい」とか「荒らしのひどい人がいるので、その人のIPからはアクセスできないようにする」などの制御が行えるファイルです。

複雑なファイルではなく、簡単な記述で処理を行なってくれます。

設置したディレクトリ、仮に「wordpress」というフォルダの中に設置すると「wordpressフォルダ内とそれ以下の全てのフォルダ」に対して有効になります。「wordpress」が一番上の階層であるなら、全てのフォルダに対して有効になります。

また、下の階層に追加で.htaccessを置いた場合は、後に置いた方のみ有効になるのではなく両方の設定が有効になります。

今回はこの.htaccessの設置場所が原因でした。


ドメイン直下に置くだけ

WORDPRESSでパーマリンク設定を変更するとトップページ以外が404エラーになるという問題は非常に多くの方がぶつかるようで、検索をかければたくさん引っかかります。

ですが、対策を書いてあるサイトのほとんどは「mod_rewrite」という機能が動作していないことに対するもののようです。

「パーマリンク設定を変更」すると「.haccessに自動で書き込まれるはずの内容が書き込まれない」という問題に対する解決方法です。こちらの内容は割愛します。

名前.comのSDサーバーでWORDPRESSを使用している場合、パーマリンク設定を変更すると.htaccessには自動で

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 
# END WordPress

と記入されます。

この記述内容は正しく、変更する必要はありません。
なのでとても悩みました。そして、すごく簡単に解決しました。

問題は、.htaccessの作成される場所でした。
私の環境では.htaccessファイルは「ドメイン名/wp/」の中に自動作成されます。
このサイトの場合「mndangler.net/wp/.htaccess」にあります。

この「wp」というフォルダがくせ者です。
お名前.comの共用SDサーバでWordPressを自動インストールした際にできる特有のフォルダなんです。

そこで、htaccessをFTPソフトで一度ダウンロードし、ドメイン直下にアップロードしてやるとあっさりと解決してしまいました。「mndangler.net/.htaccess」という配置です。

基本ができていない素人なのできっと当たり前のこの状態に気がつくことができませんでした。
移動後は、wpフォルダの中の.htaccessを削除して完了です。

結論

お名前.comのSDサーバーでWordPressを簡単インストールという方法で導入した場合の構成は、
「ドメイン/wp/WordPress本体」となり「wpフォルダ」の中に「WordPress本体」が入っている状態となります。

一般的な構成は「ドメイン/WordPress本体」となるので、ここがややこしい。

そして、ブラウザでアクセスする時のドキュメントルートは「ドメイン直下」となっています。
このブログで言うと「http://mndangler/」。ここにまずアクセスします。

ドメイン直下にWordPress本体が無いので、そこへ代わりに置いてある「index.php」がまず読み込まれ、「index.php」の内容に従い「wpフォルダ内のheader.php」を読み込みに行くという順番になっています。

この手順を踏んでいるせいで本来は「ドメイン/WordPress本体」というシンプルな構成になるところ、「wp」フォルダを1つ挟んだ構成になっています。

これが原因で.htaccessの位置がおかしなことになるのだと思われます。
結論から言うとドキュメントルートに置く必要があるのに、1つ下の階層に作られてしまうのが原因です。

おまけ

パーマリンクをポスト名にすると投稿の日本語タイトルがそのまま日本語URLとなって表示されますが、日本語が長すぎるとBookmarkができないことがあるそうです。

各投稿を書く際にタイトルの下にパーマリンクの編集ボタンがあるので、そこを任意の英語表記にすると整理がしやすいかもしれません。このページだと「link-404error」というURLに変更しています。

コメント

 DISQUSコメントシステムとは?
DISQUSコメントシステムFacebook Twitter Google などのアカウントを使用してコメントを残すことができます。
また、それらを使いたくない場合でも メールアドレスのみ でコメントが可能で、その際のアドレスはもちろん非公開です。
YouTubeTweet などはURLを貼ると自動で埋め込み表示されますし、画像をアップすることもできます。
お気軽にコメント頂けると嬉しいです。

New Post



Random


CLOSE