繁体   English   中英

htaccess和RewriteRule

[英]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地址。

提前致谢,

您可以使用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]

我会尝试不带+简单方法,将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个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM