我有以下.htaccess
代码:
RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC]
RewriteRule .* - [L]
RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC]
RewriteRule .* - [F]
当我访问/administrator/index.phpoption=com_component&task=ajax&format=raw&template=something
时,我收到403错误。
我应该如何重构这4行以满足第二个条件(在所有网址中屏蔽?tp=
,?template=
等,但以/administrator
开头?)
因此/administrator/index.php?option=com_component&task=ajax&format=raw&template=something
应该可以访问,/index.php?option=com_component&template=something
不应该访问。
答案 0 :(得分:2)
您可以在上一条规则中使用否定lookahead assertion:
RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC]
RewriteRule .* - [L]
RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC]
RewriteRule ^(?!administrator/).+ - [F]