0

想知道这是否可能。

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

提前致谢,

4

2 回答 2

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]
于 2012-08-12T07:04:22.603 回答
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 个字符。

于 2012-08-12T07:48:13.423 回答