Opened 17 years ago
Closed 17 years ago
#5661 closed defect (bug) (fixed)
url_to_postid sometimes incorrectly doubles requested url
Reported by: | filosofo | Owned by: | |
---|---|---|---|
Milestone: | 2.5 | Priority: | normal |
Severity: | normal | Version: | 2.5 |
Component: | General | Keywords: | url_to_postid wp_rewrite has-patch |
Focuses: | Cc: |
Description
This patch brings url_to_postid into line with the same rewrite rule-matching behavior as that in the parse_request method of WP.
To understand the problem---which has already been fixed in the parse_query method---suppose you have a page with the name blog/comments-preview
Among others, you have the following two rewrite rules:
blog/comments-preview/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$
...
(blog/comments-preview)(/[0-9]+)?/?$
The problem is that ( (! empty($url)) && (strpos($match, $url) === 0) )
returns true on the first rewrite rule, where $match is the rule and $url is blog/comments-preview
, so $request_match becomes blog/comments-preview/blog/comments-preview
instead of what it should stay as: blog/comments-preview
So when the foreach loop reaches the correctly matching rule, the second one above, it no longer matches, and url_to_postid returns false.
(In [6614]) Don't double requested url in url_to_postid(). Props filosofo. fixes #5661