web-dev-qa-db-ja.com

WordPressにより、ホームページを除くすべてのページで404ページが見つかりません

突然WordPressウェブサイトにアクセスすると、すべてのページで404ページが見つかりませんでした。問題はパーマリンク構造にあると思います。パーマリンク構造は、触れなかったと断言できます。パーマリンクの設定は「月と名前」です。

この問題の同様の事例をオンラインで調査しましたが、その多くは.htaccessファイルに関係していますか?見つけようとしましたが、できません。おそらく何とか削除されたのでしょうか?それはどこにあるはずです。

任意の提案が役立ちます

そしてもちろん、私は隠しファイルを見ることができます。

101
Adam

.htaccessは隠しファイルなので、すべてのファイルをFTPで表示されるように設定する必要があります。

パーマリンク構造をデフォルト(?p = ID)に戻して、.htaccessが問題であることを確認することをお勧めします。

その後、単純に「月と名前」の構造を再度設定し、機能するかどうかを確認できます。

PS:3.1にアップグレードしましたか?この場合、プラグインの問題を抱えている人を見かけました。

91

Day and nameMonth and namedefaultPost name、またはCustom StructureなどのNumeric以外のパーマリンクを使用していた場合、その問題の修正は非常に簡単です。

管理エリアにログインします:Settings > Permalinksこれは次のとおりです:http://yoursite.com/wp-admin/options-permalink.php

Defaultパーマリンク設定を選択、次に変更を保存

次に、以前の他のパーマリンクの選択に再び戻すまたは希望するようにdefaultとして保持

この問題は、サイトをドメインまたは場所から別の場所に移動したときに発生する可能性があることに注意してください。

47
usama sulaiman

基本的に、.htaccessファイルが存在し、httpd.confが正しいはずです。

私の場合、セクションでファイル/etc/httpd/conf/httpd.confを変更しました。

<Directory "/var/www/html">

変更された行は次のとおりです。

AllowOverride None

AllowOverride All

そして、Webサーバーを再起動します。

46
georgeos

デフォルトの動作(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

26
tsvikas

以下の手順に従うだけで問題を修正するのは簡単です。管理ダッシュボードにログインするためにアクセスする場合は、単に

Go to Settings » Permalinks, and simply click on Save Changes button

enter image description here

これにより、パーマリンク設定が更新され、書き換えルールがフラッシュされます。ほとんどの場合、このソリューションは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

これで問題が解決することを願っています。

14
Pronab Roy

これがすべて機能しない場合、.htaccessが正しく、パーマリンクトリックが機能しない場合、Apache2 rewite modを有効にしていない可能性があります

私はこれを実行し、私の問題は解決しました:

 Sudo a2enmod rewrite 
13
David Valenza

WordPress管理インターフェイス内で次の操作を行います。

  1. 管理者設定に移動

  2. パーマリンクをクリックし、ラジオボタンで投稿名を選択します。

  3. 下にスクロールすると、.htaccessコードが次のように表示されます。

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
    
  4. コードをコピーして、.htaccessファイルに貼り付けます。

このエラーは、Apache httpd.confドキュメントのrewrite modが無効になっているために発生しています。

6
Asif Khan
  • .htaccessのディレクトリが正しいことを確認してください
  • 「siteurl」および「home」フィールドが正しいことを確認してください
3
José Carlos

アカウントへのFTPアクセスがある場合:

まず、wp-adminにログインし、[設定]> [パーマリンク]に移動します

下部に次のようなメッセージが表示されるはずです。

「.htaccessファイルが書き込み可能であれば、これを自動的に行うことができますが、そうではありません。これらは.htaccessファイルにあるmod_rewriteルールです。フィールドをクリックし、CTRL + aを押してすべてを選択します。」

これが当てはまる場合、次の手順を実行します。

  1. FTPクライアントの設定に移動し、隠しファイルが表示されることを確認します(FTPクライアントによって異なります)-これを行わないと、htaccessファイルが見つかりません

  2. Wp-admin、wp-content、wp-includesディレクトリがあるフォルダーに移動します。 .htaccessファイルを確認してください。存在する場合は、手順4に進みます

  3. 存在しない場合は、.htaccessという名前のFTPプログラムに新しい空のファイルを作成します

  4. .htaccessファイルのCHMODを666に変更します(これを行う方法の好み)

  5. Permalinksページに戻り、必要なリンク構造を編集します。問題を解決する必要があります!

  6. 完了したら、htaccessファイルのchmodを644に戻すようにしてください。

同じ問題が発生しただけで、すぐに修正できるようです!がんばろう!

2
JEFF B

ほとんどの場合、この問題は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ファイルはサーバーによって単に無視されます。

2
mrtnmgs

同じ問題が発生したため、仮想ホストのerror.logを確認して解決しました。次のメッセージが見つかりました。

AH00670:オプションFollowSymLinksおよびSymLinksIfOwnerMatchは両方ともオフです。そのため、ディレクトリの制限を回避する同様の機能により、RewriteRuleディレクティブも禁止されています:/ srv/www/htdocs/wp-intranet /

解決策は、仮想ホスト構成でOptions AllAllowOverride Allを設定することでした。

2
Black

ウェブホストの設定で.htaccessが許可されていない可能性があります。その場合、デフォルトのパーマリンクに設定すると機能します。

1
Fanky

問題を修正するためにmod_rewriteをインストールしました。以下のリンクはインストールガイドを提供します: http://www.iasptk.com/enable-Apache-mod_rewrite-ubuntu-14-04-lts/

1
Abhishek K

ケース1:-この種の問題が発生した場合、あるホストから別のホストにサイトを移行するかどうかを考えてみましょう。

解決策:-古いサーバーにコピーして.htaccessファイルのコードをコピーし、新しいサーバーの.htaccessファイルにコピーします。 99%うまくいきます。

0
Navruk

nginxユーザーの場合

サイトのconfファイルで次を使用します(通常は/etc/nginx/sites-available/example.com

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

これにより、URI文字列と指定された引数を使用してindex.phpにすべてのパーマリンクリクエストが渡されます。 systemctl reload nginxを実行して変更を確認すると、ホームページ以外のリンクが読み込まれます。

0
ABCTaylor

ダッシュボードで設定->パーマリンクに移動し、最後に変更を保存ボタンに移動します。

0
Deepak Sharma

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を削除して再度作成し、問題は解決しました。

0
boomz

パーマリンクまたはサーバー構成の変更を行う前に、.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
0
Mustafa sabir

設定>パーマリンクに移動して、すべての投稿のパーマリンクを「月と日」に変更しました。

これで、すべての投稿が開かれ、正常に機能するようになりました。

繰り返しますが、すべての投稿の名前を実際のパーマリンクに変更しました。再び正常に動作します。

この方法は私のために働いた:-)

0
Shani Deshwal