Thanks for all the tips! I'm a little confused, though.
You wrote, "Using index.php as a 'handler' which can more easily use the strtolower() PHP function. It appears that you must already be doing this."
I'm not sure what you mean. However, I am aware of the strtolower function and can use it on any of my includes (not just index.php). However, I suspect you're referring to the index pages of my various sections (e.g. MySite/World.php, MySite/Topics.php, etc.). If someone types MySite/World/New_York into their browser, and I have a script in the static page at MySite/World/index.php that changes it to lower case and replaces the underscore with a dash, then that would actually be a very easy solution. In fact, it would actually be very easy to do, as all my section index pages include a common file where I could put that file. (Now I'm thinking, duh...why didn't I think of that before?)
Do you happen to know how that would affect my statistics? If someone types in New_York and it defaults to new-york, would my stats list one hit for each (which I don't want) or just one hit for new-york? However, it there are problems with stats, I can always work on that later. Right now, I'm just trying to get the basics.
You also wrote...
1) "The parentheses may be reserved characters in a URI (they're not ... but I had to check!) but they ARE in a regular expression as you've created an empty atom (best to escape them if you're actually trying to match parentheses)."
Sorry, I don't understand what you're saying there. Very few of my URL's will actually contain parentheses, unless I something like this:
world/georgia-(state) vs world/georgia-(republic)
2) "The /- at the end of the character range definition may be your attempt to escape the - character ... it should be first."
So I should change this...
RewriteRule ^Topics/([a-zA-Z0-9()_/-]+)/?$ Topics/index.php?topic=$1 [L]
RewriteRule ^Topics/([/a-zA-Z0-9()_-]+)/?$ Topics/index.php?topic=$1 [L]
- The /? will allow requests to be from two directory levels (which will destroy your relative links - after all, which level are they relative to?)."
So I should further delete the first question mark, changing it to this?
RewriteRule ^Topics/([/a-zA-Z0-9()_-]+)/$ Topics/index.php?topic=$1 [L]
I'm going to try your first tip right now. That sounds like a really easy fix...