只允许从特定域访问 /admin?

只允许从特定域访问 /admin?

如果我有多个指向同一个站点的域名。

如果我有一个名为admin-domain.com

我只想允许admin-domain.com/admin/

但不允许anything-else.com/admin/


这也需要.htaccess

另外,没有实际的admin目录,但有很多 URL,...com/admin/products/edit/54因为我正在使用 CakePHP 框架,该框架已经使用 htaccess 来处理这样的 URL。我只想将管理员访问权限限制为 1 个域。

答案1

编辑 Cake webroot 目录中的 .htaccess 文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} !=admin-domain.com
RewriteRule ^admin/.*$ - [F]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

答案2

如果您想将 www 添加到此处。您可以使用:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^http://(www\.)?admin-domain\.com
RewriteRule ^admin/.*$ - [F]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

请记住,推荐代理可能会被欺骗。;-)

相关内容