htaccess:重写规则不起作用

I want 'contact' to be changed into index.php?controller=Front&action=$1&page=12 and I get a 404:

The requested URL /symfony/LocAtMe/web/contact was not found on this server"

This is the code in my htaccess:

AddType application/x-httpd-php .tpl .inc
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ index.php?controller=default&action=index [QSA]
    RewriteRule ^contact$ index.php?controller=Front&action=$1&page=12 [QSA, L]
    RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [QSA]
</IfModule>

Any help much appreciated.

You can't have a space after the QSA, in the rewrite flags:

RewriteRule ^contact$ index.php?controller=Front&action=$1&page=12 [QSA,L]
# can't have a space here ----------------------------------------------^

Though that shouldn't cause the 404. You should also double check that you have mod_rewrite loaded. If it's not loaded, removing the <IfModule mod_rewrite.c> and </IfModule> lines should cause a 500 error.

Make sure above code is placed in DOCUMENT_ROOT/symfony/LocAtMe/web/.htaccess and then use this code:

RewriteEngine on
RewriteBase /symfony/LocAtMe/web/

RewriteRule ^$ index.php?controller=default&action=index [QSA,L]
RewriteRule ^(contact)/?$ index.php?controller=Front&action=$1&page=12 [QSA,L]
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [QSA,L]