WordPressから、ホームページ以外のすべてのページで404ページが見つからない


115

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

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

どんな提案も参考になります

もちろん、隠しファイルも表示されます。


wordpress.stackexchange.comでも同様に質問することをお勧めします。
James Wiseman、

回答:


95

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

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

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

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


1
はい、隠しファイルを表示しました。デフォルトからパーマに切り替えましたが、デフォルトで機能します。また、ワードプレスはそれ自体または何かを更新しますか?ログオンすると、Webサイトに新しい管理タスクバーが表示されますが、以前はありませんでした。どうやってそこに着いたのかわかりません。
アダム

誰かが誤って3.1に更新したため、プラグインと競合した
Adam

1
欠落している場合.htaccessも、パーマリンクを修正してもこの問題が発生する可能性があるため、非表示または欠落していないことを最初に確認してください
Osify

1
WordPress管理者にログインし、parmalinksを再度保存するだけです。これにより、.htaccessファイルが生成されるか、既存のファイルが更新されます。
Keyur Patel

私は管理者を使って手動で.htaccessファイルを更新しようとしましたが、それでも同じ問題があります。プラグインも無効にしますが、パーマリンクの問題は修正しません。
ジェイミン

56

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

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

<Directory "/var/www/html">

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

AllowOverride None

AllowOverride All

そして、ウェブサーバーを再起動します

systemctl restart apache2

1
おかげで助けになりました。私の場合、AllowOverride設定がありませんでした。
ぼろ

1
これで修正されました。私はそれが価値があるもののために浮浪者のscotchboxを使っています。
Matt Kaye 2018年

2
これはほとんど常に問題です。トップアンサーでなければなりません。
ノエルバロン

これは私のために問題を修正しました
チャールズ

52

あなたが以外のパーマリンク使用していた場合、問題は非常にシンプルであることを修正するdefaultなどDay and nameMonth and nameNumericPost nameまたはCustom Structureあなただけの必要性を、

管理エリアにログインしますSettings > Permalinkshttp://yoursite.com/wp-admin/options-permalink.php

Defaultパーマリンク設定を選択し、変更を保存します

次に、それを以前の他のパーマリンク選択に戻す希望どおりに保持できますdefault

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


1
これは私に多少助けになり、データベースエラーが発生し、その後すべてのページが404になりました。パーマリンクオプションを別のオプション(プレーンなど)に切り替えてからデフォルトのオプションに戻すと、すべてのリンクが修正されました!
PaulBGD 2017

それを聞いてうれしい:)
usama sulaiman

2
完璧な回答+100
handiansom

機能していない場合でも、デフォルトのパーマリンク設定に戻すにはどうすればよいmysite.com/wp-adminですか?
J86

完璧な回答+10086
Aflext

29

デフォルトの動作(example.com/?p=42)が機能している場合は、次のことを行う必要があります。

  • お好みのパーマリンクスタイルに変更し、Admin: Settings > Permalinks[保存]をクリックします。時々それは問題を修正します。そうでない場合:
  • ファイル/path/to/wordpress/.htaccessが変更され、行が含まれていることを確認しますRewriteEngine On。行が含まれていない場合は、Wordpressの権限の問題です。
  • 'rewrite'モジュールがロードされていることを確認します。PHPファイルを作成するには

    <?php
      phpinfo()
    ?>

    その中で、ブラウザで開き、を検索しmod_rewriteます。「ロードされたモジュール」セクションにあるはずです。そうでない場合は、有効にします。index.html詳細については、Apacheのデフォルトファイルを参照してください。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


20

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

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

 sudo a2enmod rewrite 

ページ内を検索してmod_rewritephpinfo();有効になっているかどうかを確認します。それはであるLoaded Modulesapache2
vanduc1102

9

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ファイルに貼り付けます。

1
これはどこにありますか?パーマリンクにはこのようなものはありません。
Boris_yo 2014

@Boris_yo私が知る限り、ルールは、htaccessファイルがnot書き込み可能である場合にのみ表示されます。ワードプレスの場合は、単純にそれを書き込みます...
Obmerk Kronen

1
この答えは素晴らしいです!LinuxでWPを使用しない限り、それについては決して知りません。
どうも

7

このエラーは、Apache httpd.confドキュメントのrewrite modが無効になっているために発生しています。コメントを外して、seoフレンドリーなパーマリンクをお楽しみください。


4
  • .htaccess上のディレクトリが正しいことを確認します
  • 「siteurl」フィールドと「home」フィールドが正しいことを確認してください

1
私にとって、家が問題でした。私はそれを修正し、すべて仕事に戻ります。Obrithankyouホセカルロス。
ティアゴグーバ2014

4

同じ問題があり、仮想ホストのerror.logを確認することで解決しました。次のメッセージが見つかりました:

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

解決策をセットにしたOptions Allし、AllowOverride All私たちのバーチャルホストの設定で。


3

アカウントにFTPアクセスできる場合:

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

あなたは言う下部に何かを見るはずです:

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

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

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

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

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

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

  5. Permalinksページに戻り、必要なリンク構造を編集します。問題は解決されるべきです!

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

同じ問題があり、すぐに修正されたようです!幸運を!


"mod_rewrite"これが問題でした、有効にするのを忘れました!ありがとう:)
Chemaclass

3

ほとんどの場合、この問題はWordPress管理画面の[ 設定]-> [パーマリンク]ページにアクセスして[保存]をクリックするだけで修正されます(他のいくつかの回答で既に指摘されています)。このページにアクセスすると、WordPressは.htaccessファイル内のディレクティブを書き換えて、魔法のように問題を修正します。この問題は多くの場合、サイトを移動した後に発生します(サイト.htaccessが取り残されるか、設定を更新する必要があるため、サイトが壊れます)。

WordPressに.htaccessファイルを書き込むための適切な権限がない場合、設定が保存されると、ページの上部に通知が表示され、下部に詳細な説明が表示されます。この場合、.htaccessファイルを自分で編集するか、そのファイルの権限を修正する必要があります。ファイルはWordPressインストールのルートにあります。cdとディレクトリにsudo chmod 644 .htaccess。ファイルが正しいグループに属しているかどうかを確認し、で必要な変更を行うこともできますchown。方法がわからない場合は、ホスティングプロバイダーにお問い合わせください。

共有ホスティングを使用している場合は、おそらくそれだけです。それでも問題が解決しない場合は、ホスティングプロバイダーのサポートにご相談ください。それ以外の場合は、.htaccess@ georgeosがすでに示唆しているように、サーバーでファイルの使用が有効になっていることを確認してください。httpd.conf常に使用されるとは限らないことに注意してください(Ubuntuは非推奨であることを示しています、公式のApacheのドキュメントにはまだメインの構成ファイルであることが多いと記載されています)。/etc/httpd/conf/httpd.confそして/etc/apache2/apache2.conf、このファイルの最も一般的な場所であるように見えます。通常、パブリックフォルダーのブロックを見つけ、ディレクティブがに設定され<Directory /var/www/>ていることを確認AllowOverrideAllます。に設定されているNone場合、.htaccessファイルはサーバーによって単に無視されます。



2

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


1

ケース1:-この種の問題が発生した場合に、サイトをあるホスティングから別のホスティングに移行するとします。

解決策:-単に古いサーバーの.htaccessファイルのコードに移動してから、新しいサーバーの.htaccessファイルを貼り付けます。99%動作します。


0

私は同じ問題を抱えているので、Apacheを削除して再度作成し、問題は解決しました。



0

WordPressのインストールがサブフォルダー(例:https://www.example.com/subfolder)にある場合は、WordPressのこの行を変更します.htaccess

RewriteRule . /index.php [L]

RewriteRule . /subfolder/index.php [L]

そうすることによって、あなたはワードプレスを探すために、サーバを言っているindex.phpWordPressのフォルダ(例でhttps://www.example.com/subfolderではなく、パブリックフォルダ(例に比べて)。https://www.example.com)。


0

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

現在、すべての投稿が開いており、正常に機能しています。

繰り返しますが、すべての投稿の名前を実際のパーマリンクに変更しました。再びうまくいきます。

この方法は私にとってうまくいきました:-)


0

nginxユーザー向け

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

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

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


0

パーマリンクやサーバーの設定を変更する前に、.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

2長い日後、解決策はoptions +FollowSymLinks私の.htaccessファイルの先頭に追加することでした。


-1

ずっと前にこの問題がありました。パーマリンクをデフォルトにリセットするか、保存しただけで、テーマ/コアを(4.7.4)/プラグインに更新し、すべてのプラグインを無効にし、デフォルトのテーマに切り替え、データベースを最適化しました。 。

これまでのところ、何も機能しません。機能するのは、投稿、新しいページ、古いページを除く/ contactページです。

基本的に、機能していないページ/ URLは次のとおりです。

/breeding
/training
/training/*
/breeding/*

究極的に、私はこれらのファイルをルートフォルダに見つけました:

/breeding.phpおよび/training.php

私は両方のファイルの名前を変更し、上記のページが機能した。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.