サポート » 使い方全般 » パーマリンクの変更で404エラーになります。

  • ブログ以外は全て固定ページのため、ページの静的化を図ろうと以下のようにパーマリンクの変更を行いました。

    カスタム構造
    /%category%/%post_id%/

    すると
    Not Found
    Additionally, a 404 Not Found error was encountered while trying to use an Errorとなってしまいます。

    色々と調べたのですが、
    www/wordpress/直下に.htaccessは存在します。

    現在の内容は
    php_flag mbstring.encoding_translation off
    php_value default_charset “UTF-8
    となっているので、

    # 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

    を追加してみましたが変わりません。
    パーミッションは644です。

    ちなみにカスタム構造を
    /index.php/%category%/%post_id%/
    にすると、
    見た目は悪いですが、正常に表示されるようになります。
    ただし、ブログ(投稿)の内容が表示されなくなってしまいます。

    他に原因や解決方法があればご教授願います。

    よろしくお願いします。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • ページの静的化を図ろうと

    わたしも同じ経緯でパーマリンクの変更をして、ブログが表示されなく成る同じトラブルになったことがあります。
    現在はWordPress側でパーマリンクの設定を変更が自由になりましたが、サーバー側の確認をされた上でのトラブルでしょうか。
    随分前のことでよく覚えてなくて申し訳ないのですが、モジュールを幾つか有効化する必要がありました。

    トピック投稿者 lbihae

    (@lbihae)

    digit@maetelさん
    有難うございます。

    現在利用しているのはファーストサーバでして、契約時からwordpressがインストールされているサーバです。

    なので、サーバ側に特に設定はしていません。
    プラグインはいくつかインストールしましたが。

    ちなみに、
    .htaccess は書き出されている。
    サーバーは .htaccess に対応している。
    サーバーは mod_rewrite に対応している。
    ことは確認済です。

    サーバやapache等はあまり詳しくないのですが、何か設定が必要なのでしょうか?

    allow_url_include はオンになってますか?
    サーバーのphpがバージョンアップしている案内は来たことありませんか?
    セキュリティの配慮で、バージョンアップの時に以前の設定はオフになっていることがあるようです。

    WordPress側で設定すると自動的に.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

    質問に記載の内容と、2行目、5行目が違っていますが、質問に記載の時のミスでしょうか?
    また、パーミッションは604です。

    トピック投稿者 lbihae

    (@lbihae)

    digit@maetelさん
    具体的なアドバイス有難うございます。

    >allow_url_include はオンになってますか?

    よくわかっていないので確認します。

    >WordPress側で設定すると自動的に.htaccessは書き換えられているので

    こちらですが、WordPress側でパーマリンクの変更をした時点でサーバ上の.htaccessが書き換わるということでしょうか?

    変更してもファイル内容は書き変わっていないので、.htaccessをいただいた内容で以下のように更新し上書きしました。

    php_flag mbstring.encoding_translation off
    php_value default_charset “UTF-8”

    # 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

    が、やはり404エラーになります。

    更にパーミッションを604に変更しましたが変わらずです。

    .htaccessの書き方の問題でしょうか?それとも自動的に書き換わらないのが問題でしょうか?

    よろしくお願いします。

    現在利用しているのはファーストサーバでして、契約時からwordpressがインストールされているサーバです。

    ということですが
    .htaccess は最初からあったのでしょうか?

    もしテキストエディタで作成してFTPアップしたものでしたら、
    ファイル形式が間違ってなかったか確認願います。
    ファイルは UTF-8 でBOMなしで保存。

    WordPressの設定を変更すると、.htaccess ファイルが発見されると自動的に書き換えられます。
    もしパーマリンクの形式を変更した時に”.htaccess”ファイルが書き込み権限が無かった場合などは画面上部に「.htaccess を更新する必要があります。」という表示がされます。
    なので度々設定を変えても気にかけていないのですが、
    認識されていないのかもしれませんね。

    トピック投稿者 lbihae

    (@lbihae)

    .htaccess は元々ありました。

    ちなみに、サーバ会社に確認したところ、

    「allow_url_include」は off となっております。
    「allow_url_include」は、「.htaccess」ファイルに「ON」設定を
    追加いただくことで切り替えが可能かと存じます。

    との回答でした。

    よくわかっていないのですが、この「allow_url_include」がオフになっているのが原因でしょうか?

    よろしくお願いします。

    初めまして。

    色々と調べたのですが、
    www/wordpress/直下に.htaccessは存在します。

    現在の内容は
    php_flag mbstring.encoding_translation off
    php_value default_charset “UTF-8
    となっているので、

    もしかすると、WordPressのインストールフォルダと公開フォルダを変えて運用していませんか?
    その場合、有効な .htaccsessはインストールフォルダではなく、公開フォルダにあるものになります。

    ちなみにカスタム構造を
    /index.php/%category%/%post_id%/
    にすると、
    見た目は悪いですが、正常に表示されるようになります。
    ただし、ブログ(投稿)の内容が表示されなくなってしまいます。

    ともあるので、
    shirakobato さんの助言のとおり、
    .htaccsess が複数存在するのかもしれませんね。
    不可視ファイルを表示させて確認してみましょう。

    トピック投稿者 lbihae

    (@lbihae)

    digit@maetelさん、shirakobatoさん、ありがとうございます。

    サーバ会社に確認していて遅くなってしまいました。

    確認したところ、
    ・WordPressの設定更新時に .htaccessファイルが自動的に更新されないのは仕様だそうです。よって、FTPで手動アップロードするしかないようです。

    ・.htaccsessはひとつしかなく、ディレクトリ「/www/wordpress/」でした。

    となると、.htaccsessファイルも正しく、FTPでアップロードしているにもかかわらずエラーということになってしまいます。

    念のため再度、.htaccsessを上書きしてみましたが、やはり
    Not Found
    The requested URL /kaatsu/ was not found on this server.
    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

    となってしまいます。

    度々恐縮ですが、なにか考えられる原因がありましたら教えてください。

    よろしくお願いします。

    モデレーター gatespace

    (@gatespace)

    こちらも参考にどうぞ。
    ファーストサーバ「サーバ移行後:UTF8からEUCサーバへ移行の不具合」
    http://ja.forums.wordpress.org/topic/23168?replies=2

    現在利用しているのはファーストサーバでして、契約時からwordpressがインストールされているサーバです。

    新サービス「 PHP Ninja 」より 「 Nginx 」で高速化した「 WordPress 専用クラウドサービス」を提供開始
    http://wp.fsv.jp/new/12030601/

    HTTPサーバは何をお使いでしょうか?
    私自身HTTPサーバをApache からnginxに移行して気づいたのですが、nginx では .htaccess を使用せずに confファイルでリダイレクト設定を行います。

    また、シングルサイトかマルチサイトかで設定ファイル、環境が異なるようです。

    トピック投稿者 lbihae

    (@lbihae)

    shirakobatoさん
    有難うございます。

    Apacheです。

    ちなみに、ファーストサーバと何度かやりとりしていたのですが、未解決のままです。
    先方では正常動作が確認できているとのことです。

    行った(確認した)こと
    ・PHP5(DSO版)になっている。
    ・.htaccessをFTPでアップロードし、他には.htaccessがないことも確認済
    ・全てのプラグインも停止
    ・.htaccessは以下の通り記述。
    php_flag mbstring.encoding_translation off
    php_value default_charset “UTF-8”

    # 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

    これでもやはりエラーになります。
    パーマリンクを/index.php/%category%/%post_id%/にすると、エラーにはなりません。

    他に何か考えられる原因がありましたら教えてください。

    よろしくお願いします。

    モデレーター gatespace

    (@gatespace)

    先に紹介したスレッドにも書いてありますが、
    .htaccess の RewriteBase、最後のRewriteRule のパスが違うんじゃないですかね。
    http://tukuruder.com/archives/1129

    php_flag mbstring.encoding_translation off
    php_value default_charset "UTF-8"
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /virtual/www/hogehoge/fuga/ #←ここ!
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /hogehoge/fuga/index.php [L]  #←ここ!
    </IfModule>
    # END WordPress

    トピック投稿者 lbihae

    (@lbihae)

    アドバイスいただいた皆様、有難うございました。

    無事に表示できました。

    .htaccessを再度アップしたところ、急にできました。

    有難うございました。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「パーマリンクの変更で404エラーになります。」には新たに返信することはできません。