Forum Moderators: phranque
For example:
http://example.com/events/foo-bar/ =>
http://example.com/events/?event=foo-bar I've tried many versions, all of which seem like they should have worked, but all eventually drop the querystring one way or another. For context, I'm including the core WordPress application ruleset:
RewriteRule ^events/(.*)/ /events/?event=$1
# WordPress
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] RewriteLog:
applying pattern '^events/(.*)/' to uri 'events/foo-bar/'
rewrite 'events/foo-bar/' -> '/events/?event=foo-bar'
split uri=/events/?event=foo-bar -> uri=/events/, args=event=foo-bar
add path info postfix: /events/ -> /events//foo-bar/
applying pattern '.' to uri '/events//foo-bar/'
RewriteCond: input='/events/' pattern='!-f' => matched
RewriteCond: input='/events/' pattern='!-d' => matched
rewrite '/events//foo-bar/' -> '/index.php'
applying pattern '^events/(.*)/' to uri 'index.php' I've also tried other variants using REQUEST_URI, both with and without [L], but no luck. Any ideas?
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/foo-bar/
strip per-dir prefix: /Users/foo/Sites/example.com/events/foo-bar/ -> events/foo-bar/
applying pattern '^(.*)$' to uri 'events/foo-bar/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/foo-bar/
strip per-dir prefix: /Users/foo/Sites/example.com/events/foo-bar/ -> events/foo-bar/
applying pattern '^assets/(.*)' to uri 'events/foo-bar/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/foo-bar/
strip per-dir prefix: /Users/foo/Sites/example.com/events/foo-bar/ -> events/foo-bar/
applying pattern '^admin/?' to uri 'events/foo-bar/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/foo-bar/
strip per-dir prefix: /Users/foo/Sites/example.com/events/foo-bar/ -> events/foo-bar/
applying pattern '^events/(.*)/' to uri 'events/foo-bar/'
rewrite 'events/foo-bar/' -> '/events/?event=foo-bar'
split uri=/events/?event=foo-bar -> uri=/events/, args=event=foo-bar
internal redirect with /events/ [INTERNAL REDIRECT]
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/
strip per-dir prefix: /Users/foo/Sites/example.com/events/ -> events/
applying pattern '^(.*)$' to uri 'events/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/
strip per-dir prefix: /Users/foo/Sites/example.com/events/ -> events/
applying pattern '^assets/(.*)' to uri 'events/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/
strip per-dir prefix: /Users/foo/Sites/example.com/events/ -> events/
applying pattern '^admin/?' to uri 'events/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/
strip per-dir prefix: /Users/foo/Sites/example.com/events/ -> events/
applying pattern '^events/(.*)/' to uri 'events/'
add path info postfix: /Users/foo/Sites/example.com/events -> /Users/foo/Sites/example.com/events/
strip per-dir prefix: /Users/foo/Sites/example.com/events/ -> events/
applying pattern '.' to uri 'events/'
RewriteCond: input='/Users/foo/Sites/example.com/events' pattern='!-f' => matched
RewriteCond: input='/Users/foo/Sites/example.com/events' pattern='!-d' => matched
rewrite 'events/' -> '/index.php'
applying pattern '^events/(.*)/' to uri 'index.php'
What I'm attempting to do is override the WP ruleset for any http://example.com/events/ URL that has more path info past /events/
If I remove the WP ruleset and create a dummy /events/ directory with an index.php file, I can see my rule is working correctly. It's in combination with the WordPress rules that it fails.
I guess I can't quite get my head around what WP is actually receiving. It almost seems as though what I'm attempting is akin to a nested rewrite, something I don't think exists.