WordPressでは、パーマリンクなどの設定をWordPress管理画面上から行うと.htaccessを自動で書き換えます。 管理者が独自の設定を.htaccessに行いたい場合、この自動書き換えにより独自に設定した項目が上書きされてしまうため、設定を工夫する必要があります。
# 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
通常WordPressの.htaccessは上のようになっています。
WordPressでは、 # BEGIN WordPress
~ # END WordPress
で囲まれた部分が自動書き換えの対象なので、上書きされたくない独自の設定を行う場合には、以下のようにこの外に記述すれば良いです。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^hogehoge$ /piyopiyo [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