web-dev-qa-db-ja.com

htaccessによる404 URLのインデックスページへのリダイレクト

すべての404ページが301を使用してhome/indexページに永続的にリダイレクトされるようにhtaccessファイルを設定しようとしています。htaccessファイルを構成した後、次のような偽のURLを入力して、正しく動作することをテストしようとしていますsite.com/asdfを使用して、404がリダイレクトするかどうかを確認します。 WordPressからのページが見つかりませんというメッセージを表示するだけで、ホームページへのリダイレクトに失敗します。

私が使用しているコード(下)は、Stack Overflowで機能しているようです( link、2nd reply )。 htaccessで404をリダイレクトするために使用するPHPスクリプトを作成しようとしましたが、それでも同じ結果、リダイレクトはありません。

# 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>

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]
# END WordPress
5
user38415

次を使用できます:ErrorDocument 404 /index.php but注意事項...ページが存在しない場合、404は完全に正常です。ユーザーエクスペリエンスのために、存在しないページが等しくなる場合は301リダイレクトのみを使用してください。ページ..すなわち、車から車、ウサギからウサギについて。

視聴者にとって望ましくない数十から数百の301を使用すると、ネガティブな体験を招く可能性があり、Googleはこの動作を嫌います。 404ページを関連ページにのみリダイレクトし、それ以外の場合は404のままにするか、410を使用しないでください。 404ページのユーザーは、他のページに簡単に移動でき、必要に応じて選択できます。

数千の同様のURLがない限り、書き換えるのではなくリダイレ​​クト301を使用する必要があります。単に使用します。

redirect 301 /old-url/ http://www.yourdomain.com/new-url/

2
Simon Hayter

する必要があるのは、テーマのフォルダーにある404.phpファイルを開くことだけです。存在しない場合は、空のphpファイルを作成します。次のコードをそこに貼り付けます:

<?php 
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo('url'));
exit();
?>
2