2012-08-12 547 views
0

想知道这是否可能。htaccess&RewriteRule

我使用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地址。

由于提前,

回答

0

可以使用RewriteCond创建if语句,如果匹配将用户重定向到指定的链接。该定义的RewriteCond规则条件,可以有不止一个,如果所有的人都匹配后续规则被应用于:

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] 
0

我会尝试只是这个没有+,把small.php规则之前和添加L-标志(最后),因此,如果在较小的版本相匹配,将退出:

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

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