我正在尝试编写与domain.com/abc匹配的规则
RewriteRule ^([^/\.]+)?$ results.php?category=$1 [L,NC]
这是有效的和类别= abc但是如果我去domain.com
,似乎也会触发此规则我需要我的规则只匹配斜杠后面的URL包含字母数字字符或破折号。它无法匹配正斜杠,因为domain.com/abc/123无效。
domain.com/abc123 is good
domain.com/abc-123 is good
domain.com/abc/123 should not match
domain.com should not match
domain.com/ should not match
答案 0 :(得分:2)
您可以使用:
RewriteRule ^([\w-]+)/?$ results.php?category=$1 [L,QSA]
\w
匹配[a-zA-Z0-9_]
为避免匹配下划线使用:
RewriteRule ^([a-zA-Z0-9-]+)/?$ results.php?category=$1 [L,QSA]
为了保护它,请使用此条件以避免匹配目录:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ results.php?category=$1 [L,QSA]