WordPressで結構引っかかることが多いのが、サーバとの兼ね合い
特にパーマリンクがうまくつながってくれない問題は、よく起こるのでは
ググって出てくるのは、AllowOverride None を All にしろとばかり
もうやってるっちゅーの!!
半泣きになりながらも、解決法を探っていたら、やっと見つけた
Ubuntu独特のmoduleを有効にする方法が、躓きの原因だったようだ
mod_rewriteを有効にする
Ubuntuでは、apache2をインストールした時に、デフォルトでmod_rewriteがインストールされている
しかし、有効になっていないので、それを有効にする作業が必要
##rewrite.loadがあることを確認する
% cat /etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
##mod_rewriteを有効にする
% sudo a2enmod rewrite
有効になったことを確認する
% ls -al /etc/apache2/mods-enabled/rewrite.load
lrwxrwxrwx 1 root root 30 Feb 2 20:12 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load
#apache設定ファイルのAllowOverrideを書き換える
よく httpd.conf というファイル名で見られる、いわゆるapacheの設定ファイルみたいなものは、Ubuntuでは、apache2.confであり、しかも、AllowOverrideについては、そのファイルではなく
/etc/apache2/sites-available/default
に書き込むのだそうだ
私自身は結構ハマったところだが、Ubuntuを使い慣れている方は大丈夫なのだろう
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>
そしてapacheを再起動する
% sudo service apache2 restart
#WordPressのパーマリンクRewrite設定を確認する
パーマリンク設定をデフォルト以外にして更新すると、wordpressフォルダの下に.htaccessが生成される
自動生成されない場合は、以下のファイルを.htaccessとしてアップロードすればよいが、そもそも.htaccessが自動生成されない環境では、今後も問題が起こるのではないかと思う
その.htaccessが正しく書かれているか確認する
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
参考にしたサイト↓
How to enable mod_rewrite in Apache2 on Debian or Ubuntu
WordPressの引越しでパーマリンクの404 Not Foundエラーが発生