web-dev-qa-db-ja.com

要求されたURL / aboutはこのサーバーで見つかりませんでした

My wordpressウェブサイトのホームページは正しく表示されているようですが、クリックして他のページに移動すると、次のエラーメッセージが表示されます。

Not Found

The requested URL /about was not found on this server.

Apache/2 Server at www.wildlionmedia.co.uk Port 80

テーマに問題があるのか​​、正しく書き換えられていない.htaccessファイルに問題があるのか​​わかりません。

http://www.wildlionmedia.co.uk/

問題を解決する方法はありますか?

# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine On

SetEnv DEFAULT_PHP_VERSION 53

DirectoryIndex index.cgi index.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine Off
RewriteBase /wildlionmedia.co.uk/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wildlionmedia.co.uk/index.php [L]
</IfModule>

# END WordPress
34
user1096057

これは典型的なWordpress書き換えブロックではありません。これは次のとおりです。

# 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

http://codex.wordpress.org/Using_Permalinks#Where.27s_my_.htaccess_file.3F を参照してください

.htaccessファイルはどこにありますか? WordPressのindex.phpおよび.htaccessファイルは、一般オプションページのサイトアドレス(URL)設定で示されるディレクトリに一緒にある必要があります。ファイルの名前はドットで始まるため、隠しファイルを含むすべてのファイルを表示するようにFTPツールの設定を変更しない限り、ファイルはFTPクライアントを介して表示されない場合があります。 Godaddy Hosting ConnectionのインストールでWordPress)をインストールすると、一部のホスト(Godaddyなど)が表示されないか、.htaccessを編集できない場合があります。

作成および編集(.htaccess)まだ.htaccessファイルがない場合は、作成します。サーバーへのシェルまたはsshアクセスがある場合、単純なtouch .htaccessコマンドでファイルが作成されます。 FTPを使用してファイルを転送する場合は、ローカルコンピューターでファイルを作成し、1.htaccessという名前を付けて、WordPressフォルダーのルートにアップロードし、.htaccessに名前を変更します。

.htaccessファイルは、FTP、シェル、または(場合によっては)ホストのコントロールパネルで編集できます。

それを行う最も簡単で最速の方法は、ダッシュボード>>設定>>パーマリンクでパーマリンクをリセットし、.htaccessが書き込み可能であることを確認してくださいWordPress=それ自体。

そして:index.cgiではなくindex.phpをデフォルトのドキュメントとして呼び出していることを知っていますか?それは間違っている。 index.cgiを削除します。または、サーバーでデフォルトのドキュメントを定義する必要がないため、行全体を削除してみてください。

41
markratledge

上記のすべての点が機能しない場合。それからこれを試してください。私はそれを試してみました。それは私のために働いています。

  1. Go / etc/httpd/conf/httpd.conf.
  2. AllowOverride NoneをAllowOverride Allに変更します。
  3. 再起動 Apacheサーバー。

2017年更新

Apacheの新しいバージョンでは、ファイルはApache2.confと呼ばれます

したがって、ファイルにアクセスするには、Sudo nano /etc/Apache2/Apache2.confと入力し、ブロック<Directory /var/www >内の対応する行を変更します

53
Birendra Rawat

それは私のためにこのように働いた:

Wordpress管理ダッシュボード>「設定」>「パーマリンク」>「共通設定」に移動し、ラジオボタンを「カスタム構造」に設定して、テキストボックスに貼り付けます。

/index.php/%year%/%monthnum%/%day%/%postname%/

[保存]ボタンをクリックします。

私はこれからこの解決策を得ました link

9
Clapham

以前の.htaccessファイルを削除し、[設定]-> [パーマリンク]の[保存]ボタンをクリックして新しいファイルを作成しました。

そして今、そのページは正常に動作し始めました...

8
yadavr

Wordpress=ウェブサイトに信頼できる回答があります:

.htaccessファイルはどこにありますか?

WordPressのindex.phpおよび.htaccessファイルは、一般オプションページのサイトアドレス(URL)設定で示されるディレクトリに一緒にある必要があります。ファイルの名前はドットで始まるため、隠しファイルを含むすべてのファイルを表示するようにFTPツールの設定を変更しない限り、ファイルはFTPクライアントを介して表示されない場合があります。 Godaddy Hosting ConnectionのインストールでWordPress)をインストールすると、一部のホスト(Godaddyなど)が表示されないか、.htaccessを編集できない場合があります。

作成と編集(.htaccess)

.htaccessファイルがまだない場合は、作成します。サーバーへのシェルまたはsshアクセスがある場合、単純なtouch .htaccessコマンドでファイルが作成されます。 FTPを使用してファイルを転送する場合は、ローカルコンピューターでファイルを作成し、1.htaccessという名前を付けて、WordPressフォルダーのルートにアップロードし、.htaccessに名前を変更します。

.htaccessファイルは、FTP、シェル、または(場合によっては)ホストのコントロールパネルで編集できます。

次のパーマリンク書き換えコードを.htaccessファイルに含める必要があります(WordPress 3.0)以降):

# 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

* here から取得。

7
Eric Brotto

選択された答えは、私にとってこの問題を解決しませんでした。それで、まだこの問題に頭を悩ませている人のために、私は別の解決策を見つけました!

Apacheの設定httpd.conf(コンソールでapachectl -Vを実行するとconfファイルを見つけることができます)で、次のモジュールを有効にしました:

LoadModule rewrite_module modules/mod_rewrite.so

そして今、サイトは期待どおりに機能します。

6
lukeocom

それは私のためにこのように働いた:

Wordpress管理ダッシュボード>「設定」>「パーマリンク」>「共通設定」に移動し、ラジオボタンを「カスタム構造」に設定して、テキストボックスに貼り付けます。

/index.php/%year%/%monthnum%/%day%/%postname%/

[保存]ボタンをクリックします。

5
Seth 666

ひえ、

ここで同様の問題に苦しんでいる人がいる場合は、仮想ホストファイルを変更するか、WPサイトをホストしているところならどこでもパーマリンクを許可することができます。

したがって、基本的にすべてが正常に動作します-パーマリンクを設定して投稿すると、URLが突然消えます。たくさんのディスカッションフォーラムに行って(私のように)たくさんの修正を試みて、「サーバーへのアクセス許可403」エラーまたはURLが見つかりませんというエラーが出ました。ホストファイルに移動するだけです。たとえば、サイト内でデフォルトの仮想ホストまたは設定ファイルを使用している場合は000-default.conf、

ディレクトリセクションで使用します。

<Directory "path/to/dir">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

次の内部ディレクトリを使用しないでください

Order allow,deny
Allow from all

orderおよびAllowディレクティブはApache 2.4で非推奨になりました。

同様に、/ etc/Apache2/Apache2.confのディレクトリを設定してパスのディレクトリを設定し、上記を使用しないでください-これにより、アクセス許可403エラーが発生します。

それに加えて、Apacheのmod_rewriteを有効にする必要があります。

4
Deepesh Thapa

Wordpressの別のバージョンを次に示します。元のバージョンは意図したとおりに動作しませんでした。

_# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^index\.php$ - [END]
    RewriteCond $1 ^(index\.php)?$ [OR]
    RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ - [END]
    RewriteRule ^ /index.php [L]
</IfModule>
# END WordPress
_

このGithubからの参照 リポジトリ 、少し変更。 過度のテストの後、このルールはすべての問題を解決するわけではありません。Wordpress webshopには40のプラグインがあり、どこかに書き換えの衝突があります。次のバージョンのWordpressにURLの書き換えがないことを心から願っています。


_RewriteRule ^index\.php$ - [L]
_

Syntax Rewrite Rule

_^_は文字列の始まりを示し、_\_は_._をエスケープするか、任意の文字を意味し、_$_は文字列の終わりを示します。

_^index\.php$_ http(s):// hostname /index.php_-_何もしない_[END]_フラグは、終了だけでなく、書き換え処理の現在のラウンドですが、その後の書き換え処理を防ぎます。


_RewriteCond $1 ^(index\.php)?$ [OR]
_

Syntax Rewrite Condition

RewriteCondで、テスト文字列として_$1_を使用して、URL http(s):// hostname /bla /の最初から最後までのすべてのキャプチャされたコンテンツを参照します。 bla.php。置換または条件で使用される場合、キャプチャされた後方参照を参照します。 RewriteRule (bla)/(ble\.php)$ - for http(s):// hostname /bla/ble.phpblaを_$1_および_ble.php_を_$2_に変換します。 _$3..N_を介して複数のキャプチャグループにアクセスできます。

_( )_は複数の文字を単一のユニットにグループ化し、_?_はオプションの一致を強制します。 _[OR]_フラグを使用すると、デフォルトのANDではなく、論理的なOR関係と書き換え条件を組み合わせることができます。

要するに、ifbla/bla.phpにindex.phpが含まれている場合OR次の条件


_RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]
_

_( )_は複数の文字を単一のユニットにグループ化し、_|_は文字をサブグループに分割し、いずれか1つでも条件付けします。 _[NC]_フラグにより​​、RewriteRuleは大文字と小文字を区別しない方法で一致します。

要するに、bla/bla.phpがいずれかのファイルタイプで終わるOR次の条件


_RewriteCond %{REQUEST_FILENAME} -f [OR]
_

サーバー変数は、%{NAME_OF_VARIABLE}という形式の変数です。NAME_OF_VARIABLEは、次のリストから取得した文字列です。

enter image description here

_%{REQUEST_FILENAME}_は、REQUEST_FILENAMEが参照されるときにサーバーによって既に決定されている場合、要求に一致するファイルまたはスクリプトへの完全なローカルファイルシステムパスです。それ以外の場合、仮想ホストコンテキストで使用される場合など、REQUEST_URIと同じ値。 AcceptPathInfoの値によっては、サーバーはリクエストをファイルにマッピングするためにREQUEST_URIのいくつかの主要なコンポーネントのみを使用している場合があります。

_-f_通常のファイルを確認します。テスト文字列をパス名として扱い、存在するかどうかをテストします。

要するに、bla/bla.phpがファイルの場合OR次の条件


_RewriteCond %{REQUEST_FILENAME} -d
_

_-d_ディレクトリを確認します。テスト文字列をパス名として扱い、存在するかどうかをテストします。

要するに、bla/bla.phpがディレクトリの場合


_RewriteRule ^(.*)$ - [END] not as in Github [S=1]
_

このステートメントは、条件の1つがtrueを返した場合にのみ実行されます。

_._は、任意の文字_*_に0回以上一致します。

_[S]_フラグは、実行したくないルールをスキップするために使用されます。スキップフラグの構文は_[S=N]_です。ここで、Nはスキップするルールの数を示します(RewriteRuleが一致する場合)。これは、書き換えルールセットのgotoステートメントと考えることができます。次の例では、要求されたURIが実際のファイルと一致しない場合にのみRewriteRuleを実行します。

要するに、何もしない


_RewriteRule ^ /index.php [L]
_

_[L]_フラグにより​​、mod_rewriteはルールセットの処理を停止します。ほとんどのコンテキストでは、これは、ルールが一致した場合、それ以上ルールが処理されないことを意味します。これは、Perlの最後のコマンド、またはCのbreakコマンドに対応します。このフラグを使用して、さらにルールを考慮することなく、現在のルールをすぐに適用する必要があることを示します。

要するに、すべてのパスをhttp(s):// hostname /index.phpに書き換えます


この小さなドキュメントをapaches.orgのドキュメントからまとめて取得しました。以下のリンク。

2
Ako

設定で>パーマリンクwordpress=シンプルに設定してもう一度テストしてください。

1
Omid Ahmadyani

同じ問題が発生しました。私のホームページはアクセスできますが、記事はサーバー上で見つかりません。

cpanel file manager > public_htmlに移動し、.htaccessを削除します。

次に、WordPressのパーマリンク設定に移動し、パーマリンクを必要なものに設定して保存します。ビオラはすべて正常に戻ります。

この問題は、WordPressを更新した後に発生しました。

0
adite

**解決済みのパーマリンクの問題Wordpress ** 1)ログインwordpressダッシュボード> [設定]> [プレマリンク]をクリックし、投稿名を選択します。2)そのログイン後ホスティングサーバーに.htaccessファイルを移動して、コードを置き換えます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
0
Ashar Zafar

Apache設定でmode_rewriteが有効になっていることを確認してください。こちらのリンクを参照してください https://github.com/h5bp/server-configs-Apache/wiki/How-to-enable-Apache-modules

次に、正しい.htaccessがあることを確認します https://wordpress.org/support/topic/404-errors-with-permalinks-set-to-postname/

そして、Apache設定のいずれかの仮想ホスト設定を修正します AllowOverride allを設定する方法

0
MSaudi