我有一个PHP页面,在类别和页面中读取$ _GET变量。
然后我将.htaccess转发url.com/categroy/page转发到index.php文件,以便它完成工作。
然而,我不能让htaccess规则正常工作
RewriteEngine On
RewriteRule ^/([^/]+)/(.[^/]) /index.php?category=$1&page=$2
RewriteRule ^/([^/]) /index.php?page=$1
关于我缺少什么的任何想法?
答案 0 :(得分:1)
您的规则缺少最终定界符$
。而.
在那个位置放错了地方。您还需要第+
个字符类的[]
量词:
RewriteRule ^([^/]+)/([^/]+)$ index.php?category=$1&page=$2 [L]
RewriteRule ^([^/]+)$ index.php?page=$1 [L]
我不确定这一点,但我也删除了领先的/
斜杠。将.htaccess放在根文件夹中时,它应该是隐含的。
此外,您可能需要典型的RewriteCond来排除任何真正的文件名被重写。将它放在每个RewriteRule之前:
RewriteCond %{REQUEST_FILENAME} !-f