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
これは典型的な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
を削除します。または、サーバーでデフォルトのドキュメントを定義する必要がないため、行全体を削除してみてください。
上記のすべての点が機能しない場合。それからこれを試してください。私はそれを試してみました。それは私のために働いています。
2017年更新
Apacheの新しいバージョンでは、ファイルはApache2.confと呼ばれます
したがって、ファイルにアクセスするには、Sudo nano /etc/Apache2/Apache2.confと入力し、ブロック<Directory /var/www >
内の対応する行を変更します
それは私のためにこのように働いた:
Wordpress管理ダッシュボード>「設定」>「パーマリンク」>「共通設定」に移動し、ラジオボタンを「カスタム構造」に設定して、テキストボックスに貼り付けます。
/index.php/%year%/%monthnum%/%day%/%postname%/
[保存]ボタンをクリックします。
私はこれからこの解決策を得ました link
以前の.htaccessファイルを削除し、[設定]-> [パーマリンク]の[保存]ボタンをクリックして新しいファイルを作成しました。
そして今、そのページは正常に動作し始めました...
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 から取得。
選択された答えは、私にとってこの問題を解決しませんでした。それで、まだこの問題に頭を悩ませている人のために、私は別の解決策を見つけました!
Apacheの設定httpd.conf
(コンソールでapachectl -V
を実行するとconfファイルを見つけることができます)で、次のモジュールを有効にしました:
LoadModule rewrite_module modules/mod_rewrite.so
そして今、サイトは期待どおりに機能します。
それは私のためにこのように働いた:
Wordpress管理ダッシュボード>「設定」>「パーマリンク」>「共通設定」に移動し、ラジオボタンを「カスタム構造」に設定して、テキストボックスに貼り付けます。
/index.php/%year%/%monthnum%/%day%/%postname%/
[保存]ボタンをクリックします。
ひえ、
ここで同様の問題に苦しんでいる人がいる場合は、仮想ホストファイルを変更するか、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を有効にする必要があります。
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]
_
_^
_は文字列の始まりを示し、_\
_は_.
_をエスケープするか、任意の文字を意味し、_$
_は文字列の終わりを示します。
_^index\.php$
_ http(s):// hostname /index.php_-
_何もしない_[END]
_フラグは、終了だけでなく、書き換え処理の現在のラウンドですが、その後の書き換え処理を防ぎます。
_RewriteCond $1 ^(index\.php)?$ [OR]
_
RewriteCond
で、テスト文字列として_$1
_を使用して、URL http(s):// hostname /bla /の最初から最後までのすべてのキャプチャされたコンテンツを参照します。 bla.php。置換または条件で使用される場合、キャプチャされた後方参照を参照します。 RewriteRule (bla)/(ble\.php)$ -
for http(s):// hostname /bla/ble.phpはbla
を_$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は、次のリストから取得した文字列です。
_%{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のドキュメントからまとめて取得しました。以下のリンク。
設定で>パーマリンクwordpress=シンプルに設定してもう一度テストしてください。
同じ問題が発生しました。私のホームページはアクセスできますが、記事はサーバー上で見つかりません。
cpanel file manager > public_html
に移動し、.htaccess
を削除します。
次に、WordPressのパーマリンク設定に移動し、パーマリンクを必要なものに設定して保存します。ビオラはすべて正常に戻ります。
この問題は、WordPressを更新した後に発生しました。
**解決済みのパーマリンクの問題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>
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を設定する方法