Make WordPress Core

Opened 13 years ago

Closed 13 years ago

#20798 closed defect (bug) (invalid)

Custom Taxonomies and Rewrite

Reported by: sumitp's profile sumitp Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.3.2
Component: General Keywords: close
Focuses: Cc:

Description

Seems like a wierd issue. I have 2 custom taxonomies on my system, say tax1 and tax2

When I use below url it works fine.
http://mydomain.com/?tax1=tax1A&tax2=tax2A,tax2B

Now, I added a htaccess rule to make this URL SEOable as
http://mydomain.com/tax1A-at-tax2A,tax2B

When I use the rule as below, the page does not give results
RewriteRule (.*)-at-(.*)$ /?tax1=$1&tax2=$2 [L]

While, when I add R=302, the rule works fine, but the URL changes, which I do not intend to do.

On further checks, I found that "Query Multiple Taxonomies" generates the page title as
Categories: ; Tax1: Tax1 A; Tax2: Tax2A, Tax2B
which, indicates addition of "Category" filter into the query, hence no results.

Normal title, when page works is as below
Tax1: Tax1 A; Tax2: Tax2A, Tax2B

I am not sure of the resolution for this though.

Change History (3)

#1 @ipstenu
13 years ago

  • Keywords close added

It should probably be [R=301,L]

But this isn't a bug in WP. You should post this one in the support forums :)

#2 @sumitp
13 years ago

Hi,

Thank you for the reply. As I said, it works with R=301, but that changes the URL which I do not want. But it does not work without R=301, though the rule is the same.

The reason for adding this as a bug is that, using QMT, I get to know that it is even applying category = '' (blank) for the posts retrieval, apart from the custom taxonomies.

When 301 is applies, it properly applies only custom taxonomies in the posts query.

Hope this helps to understand the issue.

Last edited 13 years ago by SergeyBiryukov (previous) (diff)

#3 @dd32
13 years ago

  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from new to closed

This isn't a Bug, it's due to the way you're doing the rewriting, Unfortunately I'm not good enough at mod_rewrite to suggest an alternative.

WordPress is interprating the request in 2 ways, It's processing the GET variables (from your rewrite rule) and also from the REQUEST_URI (ie. WordPress's internal url rewriting functionality)

The actual request WordPress see's is:

http://mydomain.com/tax1A-at-tax2A,tax2B/?tax1=tax1A&tax2=tax2A,tax2B

Since your permalink rules are most likely %category%/%postname%/ or similar, WordPress is interpreting the path in the URL as a category. This isn't a bug, it's just the way that the rewrite rules in WordPress work.. They don't work well with mod_rewrite rules that also hit WordPress.

The best way to achieve what you want, would be to use WordPress's internal url rewriting, WP_Rewrite instead.

Note: See TracTickets for help on using tickets.