#20008 closed defect (bug) (duplicate)
Search Results Paging Doesn't Work on Lighttp 404 Handler
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | major | Version: | 3.3.1 |
| Component: | General | Keywords: | |
| Focuses: | Cc: |
Description (last modified by )
Quote from #11723
I'm running Wordpress on lighttpd, using server.error-handler-404 = "index.php", all the pretty permalinks work perfectly. However, when doing a search, i only get the first results page, that is mysite.com/?s=query works but mysite.com/page/2/?s=query doesn't (i get shown the home page saying it's on page two of it). Paging on categories, archives and tags works as expected too.
I believe this is a Wordpress error, as the variables are being correctly passed to the script. Strangely mysite.com/index.php/page/2/?s=query or mysite.com/?s=query&page=2 works as expected, i have tried exploring the code but i don't really know about the internals of the wordpress core.
I tried the solution but not working for me.
function wp_fix_lighttpd() { //checks if URI has parameter and sets globals
if (isset($_GET) && isset($_SERVER['QUERY_STRING'])) return;
$donga = explode('?', $_SERVER['REQUEST_URI'], 2);
if (count($donga) > 1) {
$_SERVER['QUERY_STRING'] = $donga[1];
parse_str($donga[1], $_GET);
$_REQUEST = array_merge( (array)$_GET, (array)$_REQUEST);
}
}
I hope anyone can help me fix this. Thanks.
This isn't limited to Lighttpd I don't believe, or at least, I've reproduced it on Nginx
You'll find that the proper rewrite rule for paged search links will work: http://dd32.id.au/search/wordpress/page/2/
WP_Query appears to be ignoring the search param given the "front page" query of /page/2