mod_rewrite: no ? and # in REQUEST_URI

Posted by tshabala on Stack Overflow See other posts from Stack Overflow or by tshabala
Published on 2010-06-14T09:12:10Z Indexed on 2010/06/14 9:22 UTC
Read the original article Hit count: 131

Filed under:
|
|

Hello.

What I'm trying to do: have pretty URLs in the format 'http://domain.tld/one/two/three', that get handled by a PHP script (index.php) by looking at the REQUEST_URI server variable.
In my example, the REQUEST_URI would be '/one/two/three'. (Btw., is this a good idea in general?)

I'm using Apache's mod_rewrite to achieve that.
Here's the RewriteRule I use in my .htaccess:

RewriteRule ^/?([a-zA-Z/]+)/?$ /index.php [NC,L]

This works really well thus far; it forwards every REQUEST_URI that consists of a-z, A-Z or a '/' to /index.php, where it is processed.

Only drawback: '?' (question marks) and '#' (hash keys) seem to still be allowed in the REQUEST_URI, maybe even more characters that I've yet to find.
Is it possible to restrict those via my .htaccess and an adequate addition to the RewriteRule?

Thanks!

© Stack Overflow or respective owner

Related posts about php

Related posts about apache