I've tried every single example I could find, they all produce an internal server error. I have these rules set up (this works, no error):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule ^((/?[^/]+)+)/?$ ?q=$1 [L]
So if it's not an existing file or an existing directory with an index.php we redirect. For instance, http://domain.com/foo/bar
becomes http://domain.com/?q=foo/bar
Thing is, I want the trailing slash stripped. So take off the /?
at the end of the rule. How do I make it so that http://domain.com/foo/bar/
becomes http://domain.com/foo/bar
with a visible redirect first (fixing the client's URL), and only then the real, silent redirection to ?q=
?
Everywhere I look I see this:
RewriteRule (.*)/$ $1 [R,L]
But it gives me a 500 error if I insert it before my rule.