さて、このサイトの最初のページを作成しました。デフォルトのパーマリンク設定を使用すると機能します。
投稿名を使用するようにパーマリンク設定を変更すると、HTTP404が取得されます。
何がうまくいかなかったのか、何かが壊れたのかわかりません。誰かが私が修正するのを手伝ってもらえますか?
このサイトはApacheでホストされています。
XAMPPまたはMAMPを使用していますか? WordPress Codex: パーマリンクの問題の修正
XAMPPのユーザー(Windows):XAMPPの一部のバージョンでは、デフォルトでmod_rewriteが有効になっていません(Apacheでコンパイルされていますが)。それを有効にするには—したがってWordPressできれいなパーマリンクを作成するために必要な.htaccessファイルを書き込む)を有効にするには— Apache/conf/httpd.confを開き、LoadModule rewrite_module modules /mod_rewrite.soのコメントを外す必要があります(つまり、行の先頭にあるハッシュ/ポンド記号を削除します)。
WAMPのユーザー(Windows):WAMPの一部のバージョン(すべてのバージョン?)は、デフォルトでmod_rewriteを有効にしないか、シンボリックリンクのフォローを許可しません。必要な機能を有効にするには、Apache/conf/httpd.confファイルに移動し、テキストエディターで開いて、LoadModule rewrite_module modules/mod_rewrite.soの行のコメントを解除します(つまり、行の先頭にあるハッシュ/ポンド記号を削除します)。次に、同じファイルのさらに下に、「OptionsFollowSymlinks」という行で始まるセクションがあります。そのセクションの2行目を「AllowOverridenone」からAllowOverrideallに変更します。編集したhttpd.confを保存し、すべてのWAMPモジュールを再起動します。これでパーマリンクが機能するはずです。
サンドボックスにmod_rewrite
がない場合は、 mod_rewriteなしのパーマリンク も表示される場合があります。
Apache
Apacheを使用している場合、パーマリンクの破損には通常、他に2つの原因があります。.htaccess
が生成されていない(権限設定のため)か、ApacheのAllowOverride
ディレクティブが有効になっていない。
まず、サーバーにSSHで接続した場合、ルートに生成された.htaccessファイルが表示されますか?そうでない場合、WordPressはそのファイルを書き込む権限を持っていない可能性があります。ファイルが存在する可能性もありますが、 WordPress編集できません。どちらの場合も、そのファイルを chmod
666に(存在しない場合は作成して)作成できます。
次に、Apache構成に次の設定があることを確認します。
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
最後に、WordPressコーデックス)の パーマリンクの問題の修正 セクションを読んでください。パーマリンクが機能しない理由については、他にもいくつかのヒントや提案があります。
私の場合、最初にWebサイトのルートフォルダー内の.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は、書き込み権限がある場合、これを自動的に行います。それ以外の場合は、書き込みができないと文句を言い、上記のコードサンプルを提供して、.htaccess
を手動で更新できるようにします。
その後、Apache2.conf
ファイルを編集しました。 Linuxでは、/etc/Apache2/Apache2.conf
にあり、次のようなセクションがあります。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AllowOverride None
をAllowOverride FileInfo
に変更します。
最後に、次のコマンドを実行します。
Sudo a2enmod rewrite
service Apache2 restart
これらのすべてのステップは、機能するために必要でした。
別のサイトでこの投稿を見つけて、すでに多くの人々を助けました
私はついに問題を解決することができました!解決策:カスタムパーマリンク構造を使用していました http://kyl.fi/%category%/%postname%/ 。末尾のスラッシュ(つまり最後の/)と出来上がりを削除しました。ただし、以前は問題なく末尾にスラッシュが付いたパーマリンク構造を使用したと確信しているので、まだ混乱しており、誰かが説明を持っていれば、この問題についてもっと知りたいと思います。
すべての標準パーマリンクには、末尾に/があります。
テスト済みの実用的なソリューション:
たとえば、Apache2構成ファイル内:
/etc/Apache2/sites-enabled/000-default.confまたはmysite.confなど。
Paramを設定し、空ではないことを確認してください:ServerName www.example.com or 123.212.333.111
また、以下のようにディレクトリルールを設定していることを確認してください(書き換えルールが.htaccessで有効になっていない可能性があるため、ここに配置して、.htaccessが機能しない理由を調べてみてください 。htaccessがApacheで機能しない )::
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
私の場合、WordPressインストールでNGINXWebブラウザーを使用しています。修正は、次のコードスニペットをNGINXディレクティブに追加することです。
location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$Host$uri/ permanent; location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ { expires max; log_not_found off; }
優れた(オープンソースの)ISPconfig.org CPanel代替品を使用している場合は、[サイト]ページに移動し、[オプション]タブで、上記のNGINXディレクティブのコードスニペットを入力します。 ISPconfigには、[オプション]タブからすばやくアクセスできる一般的なコードスニペットを追加する機能があります。
上記の修正を行った後、WordPressのパーマリンクオプションのいずれかを使用することができました。
2ポイントチェックである必要があります:1。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