【发布时间】:2016-07-20 13:32:16
【问题描述】:
我一直在尝试阻止对 /admin 和 /admin/{anything} 的访问,其中 /admin 不是 silverstripe 中的物理子目录,除了一组有限的 IP 地址,并提出了以下 .htaccess 文件部分大部分都有效。
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase '/'
RewriteCond %{REQUEST_URI} ^(.*)?(admin/(.*)|admin)$
RewriteCond %{REMOTE_ADDR} !^(127\.0\.0\.1|216\.58\.208\.36)$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>
但是有人向我指出,这不会阻止未重写的访问 framework/main.php?url=admin 和 framework/main.php?url=admin/{anything}
除此之外,Silverstripe 还可以通过不支持 .htaccess 的 Nginx 提供服务。
如何更新这个 .htaccess 部分以阻止非重写版本,以及如何在 nginx 中做同样的事情?
【问题讨论】:
-
我建议不要在同一个线程中问 2 个不同的问题。
nginx的规则将与mod_rewrite完全不同。坚持mod_rewrite这条规则,一旦解决了,就问一个新的nginx
标签: apache .htaccess nginx silverstripe