问:htaccess重写规则

时间:2015-07-30 04:23:25

标签: apache .htaccess mod-rewrite

目前我的.htaccess

中有这个
# Enable Rewriting
RewriteEngine on

# Rewrite user URLs
RewriteRule ^index/^([0-9a-zA-Z-]+)$ index.php?index=$1
RewriteRule ^([0-9a-zA-Z-]+)$ index.php?index=$1

在我的浏览器中,当我这样访问时:

http://domain.com/aboutus

它按预期工作。我想做的是,如果我有这样的事情:

http://domain.com/category/sports

我应该在我的.htaccess中添加什么内容,以便它可以读取主要类别和子类别的URL格式?

1 个答案:

答案 0 :(得分:1)

你遗漏了正则表达式中的正斜杠。

RewriteRule ^index/([0-9a-zA-Z-\/]+)$ index.php?index=$1 [L]
RewriteRule ^([0-9a-zA-Z-\/]+)$ index.php?index=$1 [L]

更好的是,将规则合并为一个:

RewriteRule ^(index/)?([0-9a-zA-Z-\/]+)$ index.php?index=$2 [L]

还添加了[L]标志,以便在找到匹配项时停止重写。