lucy24 - 10:54 pm on Oct 13, 2013 (gmt 0)
Your first package of rules involve rewrites. The second package involves redirects. (302, at that. Is this temporary, for testing?) So in each case we're only seeing half of the question.
It's good the old rules are being retired, because there are some issues:
a. Target of a rewrite should have a leading slash
b. "QSA" implies that the original request might already have a query string-- but why would it, if the URL is in HTML?
c. Rule as written allows for requests for explicit "index.html", which should have been forcibly redirected.
d. What's with [a-z0-9_\-]*- ? Seems like that would allow for requests with leading slash-- to say nothing of the massive backtracking involved in the rest of the rule, since [a-z0-9_\-] matches almost everything.
e. Don't quite care for URLs in .php/more-stuff-here
f ...well, there's probably more stuff lurking among those pipes.
Most RegEx engines are perfectly happy with \w meaning [A-Za-z0-9_] -- in other words, almost everything you'll ever see in an URL, except hyphens and ::shudder:: literal periods. Similarly \d for [0-9] at a savings of three bytes. And, of course, [tp] instead of (t|p), or ([tp]) if you need a separate capture.
The quoted rules don't show how pagination was handled in the old pattern. I'd expect something involving
topicname-(\d+)/index(\d+)\.html >> t=$1&p=$2
But the most important question is...
Why are you changing URLs at all? Why not keep the old URLs and rewrite to the files' new location? If you do want to change the URL, why not take the opportunity to change them to something pretty and user-friendly?