1

次の.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エラーになります。

?tp=これらの 4 行を 2 番目の条件 (すべての URLでなどをブロックするが、 ??template=で始まる)を満たすようにリファクタリングするにはどうすればよいですか?/administrator

したがって/administrator/index.php?option=com_component&task=ajax&format=raw&template=something、アクセス可能であるべきであり、そうであってはなり/index.php?option=com_component&template=somethingません。

4

1 に答える 1

3

最後のルールで否定先読みアサーションを使用できます。

RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC]
RewriteRule .* - [L]
RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC]
RewriteRule ^(?!administrator/).+ - [F]
于 2013-03-29T15:09:56.870 に答える