web-dev-qa-db-ja.com

404 not found、要求されたURL << url name >>はこのサーバーでwordpress=

最近インストールした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>

次に、ブログの投稿とページで確認します。

ありがとう、

1
Said Erraoudy

ウェブサーバーがファイルを見つけることができず、Wordpressにリクエストを渡していないため、このエラーを受信して​​います。

Wordpressの書き換えルールを追加する必要があり、その手順はWebサーバーソフトウェア(Apache、nginxなど)に依存します。

Nginxの例:

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

文字通り、つまり、ファイルシステムで「/ 2015/03/16/post-5-problem /」を開いてみてください。存在しない場合は、スラッシュを追加してみてください。 php(Wordpressメインファイル)と引数)。

書き換えモジュールを有効にするだけでは不十分です。書き換えルールを追加する必要があります。

0
Denis Mysenko