htaccess&重写规则

时间:2012-08-12 06:38:36

标签: php .htaccess

想知道这是否可行。

我正在使用htaccess来重写我的页面,我正在使用以下行:

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1

将其重写为干净的链接。 page.php然后适当地调用数据。 我想知道如果可能的话,如果变量是3个字符长,它会重定向到另一个页面。

RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1

上面有类似的东西?那可能吗?我只是将{3}用于插图目的。 例如,如果我的地址是www.example.com/abc,它会重定向到small.php?char = abc,如果它已经重定向到page.php地址。

提前致谢,

2 个答案:

答案 0 :(得分:0)

您可以使用RewriteCond创建if语句,如果匹配则将用户重定向到给定链接。 RewriteCond定义了一个规则条件,可以有多个,如果所有这些条件匹配,则使用后续的RewriteRule:

RewriteCond %{REQUEST_URI} /^([a-zA-Z0-9^-]+{3})$
RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1 [NC,L]

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1 [NC,L]

答案 1 :(得分:0)

我会在没有+的情况下简单地尝试这个,在之前添加small.php规则并添加L标志(Last),这样如果它与小版本匹配则会退出:

RewriteRule ^([a-zA-Z0-9^-]{3})$ small.php?char=$1  [L]
RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1     [L]

+代表一个或多个字符。 {3}代表3个字符。