[WordPress] 特定のディレクトリ/ページを404扱いにしたい
- あるディレクトリやページを404として無効なページにしたいケースがあります
- htaccessでリダイレクトする他、WordPressの場合はfunctions.phpでリダイレクトできます
htaccessで特定のディレクトリ配下を404にリダイレクトする
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^directory/(.*)$ - [R=404,L]
</IfModule>
- 「R=404,L」と指定することで404としてリダイレクトされます
htaccessで特定のディレクトリ配下のページだけを404にリダイレクトする
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^directory/(.+)$ - [R=404,L]
</IfModule>
- アーカイブだけを有効なページとして扱いたい場合は、正規表現を「(.*)」から「(.+)」に書き換えます
- これで「directory/」のあとに1文字以上の文字があるアドレスでリダイレクトが行われます
WordPressの404ページにリダイレクトしたい
function redirect_404() {
if(is_singular(array('xxx', 'yyy'))) {
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include(get_query_template('404'));
exit();
}
}
add_action('template_redirect', 'redirect_404', 1);
- htaccessでリダイレクトすると「Not Found」のエラーページとなります
- エラーページではなく、WordPress内の404ページにリダイレクトしたい場合は、functions.phpでリダイレクトを行います
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。