突然WordPressウェブサイトにアクセスすると、すべてのページで404ページが見つかりませんでした。問題はパーマリンク構造にあると思います。パーマリンク構造は、触れなかったと断言できます。パーマリンクの設定は「月と名前」です。
この問題の同様の事例をオンラインで調査しましたが、その多くは.htaccess
ファイルに関係していますか?見つけようとしましたが、できません。おそらく何とか削除されたのでしょうか?それはどこにあるはずです。
任意の提案が役立ちます
そしてもちろん、私は隠しファイルを見ることができます。
.htaccessは隠しファイルなので、すべてのファイルをFTPで表示されるように設定する必要があります。
パーマリンク構造をデフォルト(?p = ID)に戻して、.htaccessが問題であることを確認することをお勧めします。
その後、単純に「月と名前」の構造を再度設定し、機能するかどうかを確認できます。
PS:3.1にアップグレードしましたか?この場合、プラグインの問題を抱えている人を見かけました。
Day and name
、Month and name
、default
、Post name
、またはCustom Structure
などのNumeric
以外のパーマリンクを使用していた場合、その問題の修正は非常に簡単です。
管理エリアにログインします:Settings > Permalinks
これは次のとおりです:http://yoursite.com/wp-admin/options-permalink.php
Default
パーマリンク設定を選択、次に変更を保存
次に、以前の他のパーマリンクの選択に再び戻すまたは希望するようにdefault
として保持
この問題は、サイトをドメインまたは場所から別の場所に移動したときに発生する可能性があることに注意してください。
基本的に、.htaccessファイルが存在し、httpd.confが正しいはずです。
私の場合、セクションでファイル/etc/httpd/conf/httpd.confを変更しました。
<Directory "/var/www/html">
変更された行は次のとおりです。
AllowOverride None
に
AllowOverride All
そして、Webサーバーを再起動します。
デフォルトの動作(example.com/?p=42
)が機能している場合、以下を行う必要があります。
Admin: Settings > Permalinks
、[保存]をクリックします。いつかは問題を修正します。そうでない場合:/path/to/wordpress/.htaccess
が変更され、行RewriteEngine On
が含まれていることを確認します。行が含まれていない場合は、Wordpress権限の問題です。'rewrite'モジュールがロードされていることを確認します:PHPファイルを作成します
<?php
phpinfo()
?>
その中で、ブラウザで開き、mod_rewrite
を検索します。 「ロード済みモジュール」セクションにあるはずです。そうでない場合は、有効にします-詳細については、Apacheのデフォルトのindex.html
ファイルを確認します-Ubuntuでは、ヘルパーa2enmod
を使用します。
Apacheサーバーが.htaccess
ファイルを見ていることを確認します。 httpd.conf
を開く-または、Ubuntuの代替である/etc/Apache2/Apache2.conf
。その中には、次のようなものがあるはずです
<Directory /path/to/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
これらの変更を行った後、Apacheサーバーを再起動することを忘れないでください。 Sudo service Apache2 restart
以下の手順に従うだけで問題を修正するのは簡単です。管理ダッシュボードにログインするためにアクセスする場合は、単に
Go to Settings » Permalinks, and simply click on Save Changes button
。
これにより、パーマリンク設定が更新され、書き換えルールがフラッシュされます。ほとんどの場合、このソリューションはWordPress投稿404エラーを修正します。ただし、機能しない場合は、おそらく.htaccessファイルを手動で更新する必要があります。
FTPを使用してサーバーにログインし、/ wp-content /や/ wp-などのフォルダーと同じ場所にある。htaccessファイルを変更します。 include /が配置されている場合は、単に以下のコードを。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
これで問題が解決することを願っています。
これがすべて機能しない場合、.htaccessが正しく、パーマリンクトリックが機能しない場合、Apache2 rewite modを有効にしていない可能性があります。
私はこれを実行し、私の問題は解決しました:
Sudo a2enmod rewrite
WordPress管理インターフェイス内で次の操作を行います。
管理者設定に移動
パーマリンクをクリックし、ラジオボタンで投稿名を選択します。
下にスクロールすると、.htaccess
コードが次のように表示されます。
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
.htaccess
ファイルに貼り付けます。このエラーは、Apache httpd.confドキュメントのrewrite modが無効になっているために発生しています。
アカウントへのFTPアクセスがある場合:
まず、wp-adminにログインし、[設定]> [パーマリンク]に移動します
下部に次のようなメッセージが表示されるはずです。
「.htaccessファイルが書き込み可能であれば、これを自動的に行うことができますが、そうではありません。これらは.htaccessファイルにあるmod_rewriteルールです。フィールドをクリックし、CTRL + aを押してすべてを選択します。」
これが当てはまる場合、次の手順を実行します。
FTPクライアントの設定に移動し、隠しファイルが表示されることを確認します(FTPクライアントによって異なります)-これを行わないと、htaccessファイルが見つかりません
Wp-admin、wp-content、wp-includesディレクトリがあるフォルダーに移動します。 .htaccessファイルを確認してください。存在する場合は、手順4に進みます
存在しない場合は、.htaccessという名前のFTPプログラムに新しい空のファイルを作成します
.htaccessファイルのCHMODを666に変更します(これを行う方法の好み)
Permalinksページに戻り、必要なリンク構造を編集します。問題を解決する必要があります!
完了したら、htaccessファイルのchmodを644に戻すようにしてください。
同じ問題が発生しただけで、すぐに修正できるようです!がんばろう!
ほとんどの場合、この問題はWordPress adminのSettings-> Permalinkページにアクセスし、Save(as他のいくつかの回答がすでに指摘されています)。このページにアクセスすると、WordPressが.htaccess
ファイル内のディレクティブを書き換えて、問題を魔法のように修正します。この問題は、サイトを移動した後によく発生します(.htaccess
が残されているか、設定を更新する必要があるため、サイトが破損します)。
WordPressに.htaccess
ファイルを書き込むための適切な権限がない場合、設定が保存されると、ページの上部に通知が表示され、下部に追加の指示が表示されます。この場合、.htaccess
ファイルを自分で編集するか、そのファイルのアクセス許可を修正する必要があります。このファイルは、WordPressインストールのルートにあります。 cd
をディレクトリに、Sudo chmod 644 .htaccess
に追加します。また、ファイルが正しいグループに属しているかどうかを確認し、chown
で必要な変更を行うこともできます。方法がわからない場合は、ホスティングプロバイダーにお問い合わせください。
共有ホスティングを使用している場合は、おそらくこれですべてです。それでも問題が解決しない場合は、ホスティングプロバイダーのサポートにお問い合わせください。それ以外の場合は、@ georgeosが既に提案したように、.htaccess
ファイルの使用がサーバーで有効になっていることを確認してください。 httpd.conf
は常に使用されるわけではないことに注意してください( buntuは非推奨であることを示します ですが Apacheの公式ドキュメントではまだメインの設定ファイルであることが多い )。 /etc/httpd/conf/httpd.conf
と/etc/Apache2/Apache2.conf
は、このファイルの最も一般的な場所のようです。パブリックフォルダーのブロック(通常は<Directory /var/www/>
)を見つけ、AllowOverride
ディレクティブがAll
に設定されていることを確認します。 None
に設定されている場合、.htaccess
ファイルはサーバーによって単に無視されます。
同じ問題が発生したため、仮想ホストのerror.logを確認して解決しました。次のメッセージが見つかりました。
AH00670:オプションFollowSymLinksおよびSymLinksIfOwnerMatchは両方ともオフです。そのため、ディレクトリの制限を回避する同様の機能により、RewriteRuleディレクティブも禁止されています:/ srv/www/htdocs/wp-intranet /
解決策は、仮想ホスト構成でOptions All
とAllowOverride All
を設定することでした。
ウェブホストの設定で.htaccessが許可されていない可能性があります。その場合、デフォルトのパーマリンクに設定すると機能します。
問題を修正するためにmod_rewriteをインストールしました。以下のリンクはインストールガイドを提供します: http://www.iasptk.com/enable-Apache-mod_rewrite-ubuntu-14-04-lts/
ケース1:-この種の問題が発生した場合、あるホストから別のホストにサイトを移行するかどうかを考えてみましょう。
解決策:-古いサーバーにコピーして.htaccessファイルのコードをコピーし、新しいサーバーの.htaccessファイルにコピーします。 99%うまくいきます。
nginxユーザーの場合
サイトのconfファイルで次を使用します(通常は/etc/nginx/sites-available/example.com
)
location / { try_files $uri $uri/ /index.php?q=$uri&$args; }
これにより、URI文字列と指定された引数を使用してindex.phpにすべてのパーマリンクリクエストが渡されます。 systemctl reload nginx
を実行して変更を確認すると、ホームページ以外のリンクが読み込まれます。
ダッシュボードで設定->パーマリンクに移動し、最後に変更を保存ボタンに移動します。
WordPressインストールがサブフォルダー(例 https://www.example.com/subfolder )にある場合、WordPress .htaccess
のこの行を変更します
RewriteRule . /index.php [L]
に
RewriteRule . /subfolder/index.php [L]
そうすることで、サーバーにWordPressフォルダー内でWordPress index.php
を探すように指示しています(例: https://www.example.com/subfolder =)パブリックフォルダーではなく(例 https://www.example.com )。
私は同じ問題を抱えているので、Apacheを削除して再度作成し、問題は解決しました。
パーマリンクまたはサーバー構成の変更を行う前に、.htaccessファイルを確認してください。これは主に、破損または空白の.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
設定>パーマリンクに移動して、すべての投稿のパーマリンクを「月と日」に変更しました。
これで、すべての投稿が開かれ、正常に機能するようになりました。
繰り返しますが、すべての投稿の名前を実際のパーマリンクに変更しました。再び正常に動作します。
この方法は私のために働いた:-)