# Bug - Rewrite Rules

**URL:** <https://www.ruby-forum.com/t/bug-rewrite-rules/191738>\
**Category:** NGINX\
**Created:** [July 17, 2010, 9:12am UTC](https://www.ruby-forum.com/t/bug-rewrite-rules/191738 "2010-07-17T09:12:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mat\_h](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/67e7ee/32.png) [@mat\_h](https://www.ruby-forum.com/u/mat_h)\
**Post date:** [July 17, 2010, 9:12am UTC](https://www.ruby-forum.com/t/bug-rewrite-rules/191738/1 "2010-07-17T09:12:13Z")

</div>

rewrite  
^/forums/rss(/(news)+)?(/(digest)+)?(/(short|long)+)?(/([a-z0-9\_-]+))?/([a-z0-9\_]+).xml(.gz)?$  
/forums/gymrss.php?$9=$8&$2&$4&$6&gzip=$10 last;  
rewrite  
“^/forums/[a-z0-9\_-]\*-[a-z]{1,2}([0-9]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9\_]+).xml(.gz)?$”  
/forums/gymrss.php?$8=$1&$3&$5&$7&gzip=$9 last;

Version: 0.7.65-2

I can provide more help if needed, just let me know.

---

<div class="post-metadata">

**Author:** ![mat\_h](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/67e7ee/32.png) [@mat\_h](https://www.ruby-forum.com/u/mat_h)\
**Post date:** [July 17, 2010, 11:37pm UTC](https://www.ruby-forum.com/t/bug-rewrite-rules/191738/2 "2010-07-17T23:37:19Z")

</div>

Hello!

On Sat, Jul 17, 2010 at 05:11:13PM +1000, mat h wrote:

> rewrite ^/forums/rss(/(news)+)?(/(digest)+)?(/(short|long)+)?(/([a-z0-9\_-]+))?/([a-z0-9\_]+).xml(.gz)?$  
> /forums/gymrss.php?$9=$8&$2&$4&$6&gzip=$10 last;  
> rewrite “^/forums/[a-z0-9\_-]\*-[a-z]{1,2}([0-9]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9\_]+).xml(.gz)?$”  
> /forums/gymrss.php?$8=$1&$3&$5&$7&gzip=$9 last;
> 
> Version: 0.7.65-2
> 
> I can provide more help if needed, just let me know.

It’s not clear what are you trying to report, but above regexps  
won’t work as nginx only supports $1..$9 enumerated captures. And  
most likely they’ll cause segfault in 0.7.\*. Segfault should be  
fixed in 0.8.25+.

Use non-capturing groups (i.e. “(?:…)”, see man pcresyntax for  
details) to avoid extra numbering (and save some trees) and/or use  
named captures as available in 0.8.\*.

Or, even better, stop using this ugly rewrites and parse urls in  
php code.

Maxim D.
