さくらのVPSでCentOS8 (24) .htaccessがないときの対処法

前回は、WordPressのデータ移行を行った。

今回はそのインポート後に起こった問題の対応。

パーマリンクが意図した設定になっていない事が判明したのだ。

パーマリンク設定

デフォルトでは「基本」になっていると思われるし、私としては「月と投稿名」の設定にしたかったのだが、実際は「カスタム設定」の

https://yourhost.sakura.ne.jp/tekitoublog [ /index.php/%year%/%monthnum%/%day%/%postname%/ ]

となっている。

変更したい設定を選んで「変更を保存」ボタンを押せば変更は可能。

だが、次のようなメッセージを表示して、手作業で変更が必要になってしまっている。

.htaccess ファイルを更新してください。

原因は、.htaccessファイルをWordPressが変更できなかったから。

では、なぜ?

とりあえず、ファイルの属性を見てみる。

$ ls -la /var/www/nantokablog/.htaccess
-rw-rw----. 1 apache apache 90  2月 23 01:01 /var/www/naktokablog/.htaccess

所有ユーザーと所有グループも書き込み可能だ。

そして、所有ユーザーとグループもapacheとなっている。

もしなっていない時は、ファイル属性の変更と、ユーザーの変更をしてみよう。

# chmod u+w /var/www/nantokablog/.htaccess
# chown apache:apache /var/www/nantokablog/.htaccess

でも、これでも変更できない時は、やっぱりSELINUXが原因かも。

ファイルのセキュリティ属性を調べてみる。

$ ls -laZ /var/www/nantokablog/.htaccess
-rw-rw----. 1 apache apache unconfined_u:object_r:httpd_sys_content_t:s0 90  2月 23 01:01 /var/www/nantokablog/.htaccess

httpd_sys_content_tとなっており、書き込みを可能にするにはhttpd_sys_rw_content_tにする必要がある。

# chcon -t httpd_sys_rw_content_t /var/www/nantokablog/.htaccess
$ ls -laZ /var/www/nantokablog/.htaccess
-rw-rw----. 1 apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 90  2月 23 01:01 /var/www/nantokablog/.htaccess

ここまでやると「変更を保存」ボタンで、.htaccessを勝手に編集してくれ、私の場合、次のような内容になった。

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

# END WordPress

そんなにしょっちゅう変えるものではないし、変更し終わったらセキュリティ属性をもとに戻しておこう。

# restorecon /var/www/nantokablog/.htaccess

ということで、パーマリンクの設定が変更できた。

一つ一つが面倒だが、考えて対処すれば、なんてことはない。と言いたいが、めちゃ時間がかかる。面倒くさい。

と言っていても始まらないので、次回は、更に発生したインポート時のトラブルを解決させていきたい。

さくらインターネットのVPS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です