wordpress 動かしてるサーバで次のように書いてみたら動かなかった。
ログを見るに RewriteCond がうまくマッチしてくれない。
<VirtualHost *:80>
DocumentRoot /var/www/wordpress
DirectoryIndex index.php
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteLog /tmp/rewrite.log
#RewriteLogLevel 9
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</VirtualHost>
ただしくはこう書き直せば良い。
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
追記
このようなカタチのほうがポピュラーらしい。
ngyuki さん、ありがとうございます。
<VirtualHost *:80>
DocumentRoot /var/www/wordpress
DirectoryIndex index.php
Options -Indexes
<Directory /var/www/wordpress>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
</Directory>
</VirtualHost>