I am not sure if this is a known issue or suppose to be like this performance,
any wordpress website, if you put a number at the end of the URL, for example,
http://perishablepress.com/wordpress-multisite-mamp/
we put 1 or any numbers at the end
http://perishablepress.com/wordpress-multisite-mamp/123
We will not get the NOT FOUND
page, we'll still stay at the same page, which is
http://perishablepress.com/wordpress-multisite-mamp/
Is this an error or normal ? how do we redirect to NOT FOUND PAGE instead?
It's not an error, the 123
is interpreted as a pagination parameter:
Request: wordpress-multisite-mamp/123
Query String: page=%2F123&name=wordpress-multisite-mamp
Matched Rewrite Rule: ([^/]+)(/[0-9]+)?/?$
Matched Rewrite Query: name=wordpress-multisite-mamp&page=%2F123
Posts can be paginated with <!--nextpage-->
. WordPress displays the content of the last page if no further content is found (or the full post if the post is not paginated).
To redirect to the 404 page when the pagination parameter exeeds the number of pages, drop the following in your functions.php
file:
add_action( 'template_redirect', 'so16179138_template_redirect', 0 );
function so16179138_template_redirect()
{
if( is_singular() )
{
global $post, $page;
$num_pages = substr_count( $post->post_content, '<!--nextpage-->' ) + 1;
if( $page > $num_pages ){
include( get_template_directory() . '/404.php' );
exit;
}
}
}