我有一个条件有两个不同的规则。我无法合并它们。在我的代码中,只有第一个工作,第二个被忽略:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{QUERY_STRING} !-d
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ termitin.php?cat=$1&lang=$2&word=$3 [QSA,L,NC]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{QUERY_STRING} !-d
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ result.php?source=$1&target=$2&q=$3 [QSA,L,NC]
</IfModule>
感谢您的帮助。
答案 0 :(得分:0)
这种情况是错误的:
RewriteCond %{QUERY_STRING} !-d
正确的语法是:
RewriteCond %{REQUEST_FILENAME} !-d
表示如果请求不是用于目录,则执行重写。
除此之外,您的主要问题是您在两个规则中使用相同的匹配模式和相同条件:
^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$
您需要清楚地定义您的要求,例如在什么条件下将执行哪个脚本。