#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