Help us understand the problem. What is going on with this article?

WordPressのパーマリンクが表示されないときの解決法(ubuntu × apache2)

More than 5 years have passed since last update.

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を使い慣れている方は大丈夫なのだろう

/etc/apache2/sites-available/default
<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が正しく書かれているか確認する

.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エラーが発生

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away