WordPressの.htaccessを編集する場合の注意

WordPressでパーマリンクの設定などを行うと、WordPressのルートディレクトリに存在する.htaccessを、WordPressが自動的に書き換えてくれます。

利用している側は.htaccessを意識せずともURLの改変が行えるので非常に便利なのですが、別途mod_rewriteなどの設定を追加で記載したい場合、WordPressが勝手に上書きしてしまったりするため、気付いたら追加していた部分が消えてしまう場合があります。

WordPressを利用している場合は、下記のように #BEGIN WordPress ~ #END WordPress に囲まれている部分以外に記載することで、自動的な上書きを防ぐことができます。

Before

feedのURLをindex.rdfとしてリダイレクトさせている場合、以下だと自動的に上書きされる危険があります。

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

# END WordPress

After

2つの記載に分けて利用すれば問題無し。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.rdf$ /feed/rdf/ [L,R=301]
</IfModule>

# 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