最近インストールしたwordpress、パーマリンクの形式を変更しようとすると問題が発生します。
パーマリンクをデフォルトから日時に変更すると
Default http://127.0.0.1/?p=123
Day and name http://127.0.0.1/2015/03/16/sample-post/
生成されたリンクは機能せず、同じerror 404
常に、
The requested URL /2015/03/16/post-5-problem/ was not found on this server.
しかし、パーマリンクタイプがデフォルトの場合、これは完全に機能します。
私はいくつかの解決策を見つけました
Sudo a2enmod rewrite
Module rewrite already enabled
別の解決策は、パーマリンクをデフォルトから他のタイプに変更する前に、.htaccessファイルのモード許可を666に変更します(wordpress .htaccessファイルの書き込み許可を与える)、
Sudo chmod 666 /address_of_.htaccess
.htaccessファイルを確認しました
# 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
しかし、上記は正しいようです、上記はwordpress自体に含まれています
両方のソリューションが機能していないようですが、パーマリンクオプションを有効にするために他に変更する必要があるものはありますか?
Webサーバーの新規インストールの場合、.htaccessルールがデフォルトで許可されていない可能性があります。これを修正するには、httpd.confを編集します(通常は/ etc/Apache2にあります)。
<Directory "path/to/your/document/root">
# ....
AllowOverride None
# ....
</Directory>
そして変化
AllowOverride None
に
AllowOverride All
次に、Webサーバーを再起動して、再試行します。
wordpress adminエリアから目的のパーマリンクをリセットし、htaccessにこのコードを追加します。
# BEGIN WordPress
<IfModule mod_rewrite.c>
ErrorDocument 404 /index.php?error=404
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
次に、ブログの投稿とページで確認します。
ありがとう、
ウェブサーバーがファイルを見つけることができず、Wordpressにリクエストを渡していないため、このエラーを受信しています。
Wordpressの書き換えルールを追加する必要があり、その手順はWebサーバーソフトウェア(Apache、nginxなど)に依存します。
Nginxの例:
location / {
try_files $uri $uri/ /index.php?$args;
}
文字通り、つまり、ファイルシステムで「/ 2015/03/16/post-5-problem /」を開いてみてください。存在しない場合は、スラッシュを追加してみてください。 php(Wordpressメインファイル)と引数)。
書き換えモジュールを有効にするだけでは不十分です。書き換えルールを追加する必要があります。