htaccess RewriteRule问题

时间:2011-03-23 03:37:58

标签: php regex .htaccess

我有一个PHP页面,在类别和页面中读取$ _GET变量。

然后我将.htaccess转发url.com/categroy/page转发到index.php文件,以便它完成工作。

然而,我不能让htaccess规则正常工作

RewriteEngine On
RewriteRule ^/([^/]+)/(.[^/])  /index.php?category=$1&page=$2
RewriteRule ^/([^/])  /index.php?page=$1

关于我缺少什么的任何想法?

1 个答案:

答案 0 :(得分:1)

您的规则缺少最终定界符$。而.在那个位置放错了地方。您还需要第+个字符类的[]量词:

RewriteRule ^([^/]+)/([^/]+)$  index.php?category=$1&page=$2   [L]
RewriteRule ^([^/]+)$  index.php?page=$1    [L]

我不确定这一点,但我也删除了领先的/斜杠。将.htaccess放在根文件夹中时,它应该是隐含的。

此外,您可能需要典型的RewriteCond来排除任何真正的文件名被重写。将它放在每个RewriteRule之前:

RewriteCond  %{REQUEST_FILENAME}  !-f