htaccess:重写规则不起作用

时间:2013-10-05 21:16:03

标签: php .htaccess

我希望将“联系人”更改为index.php?controller=Front&action=$1&page=12,然后我会收到404:

  

在此服务器上找不到请求的URL / symfony / LocAtMe / web / contact“

这是我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>

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

在重写标记中QSA,后面没有空格:

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

虽然这不应该导致404.你还应该仔细检查你是否加载了mod_rewrite。如果未加载,则删除<IfModule mod_rewrite.c></IfModule>行会导致500错误。

答案 1 :(得分:0)

确保将上面的代码放在DOCUMENT_ROOT/symfony/LocAtMe/web/.htaccess中,然后使用此代码:

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]