I want to change some legacy URL's like this:/modules.php?name=News&file=article&sid=600to this:/news/story/600/This is what I have tried:RewriteEngine onRewriteCond %{QUERY_STRING} ^name=News&file=([a-z_]+)&sid=([0-9]+)RewriteRule ^modules\.php /news/story/%2/ [R=301,L]However I still get 404's on the old URLs.I do have some other rewrite rules working, so I am pretty sure mod_rewrite is enabled and functioning. These rules are in a httpd.conf file in a VirtualHost container.I should also mention this is for a Python application (using Django) running with mod_wsgi. Should the rewrites happen before the URLs are passed to the wsgi application?Any ideas? Thanks.
Help with Apache mod_rewrite rules
apache;mod rewrite
I got it to work. It seems I had a couple of problems.I needed a forward slash on the pattern in RewriteRule; i.e.^/modules.php instead of^modules.php.I needed to prevent the query string from being appended to the new URL. This could cause recursion in some cases, or other strange things (400 bad request). A trailing ? did the trick.I ended up with this:RewriteEngine onRewriteCond %{QUERY_STRING} sid=([0-9]+)RewriteRule ^/modules\.php /news/story/%1/? [R=301,L]