Answers:
作为Brian Peat答案的扩展:
如果您转到网址
domain.com/index.php?option=com_users&view=login
您可以登录而无需设置菜单项或任何类型的发布/取消发布问题。在Joomla中,这可以说是一个问题,因为如果您知道url结构,那么了解自己的方式仍然可以注册/登录。有防止这种情况发生的规则,但通常默认情况下,您只能使用这样的直接路径到达所需的位置。
http://www.joomla.org/index.php?option=com_users&view=login
这就是工作原理,即使没有直接登录权限的Joomla主站点也可以这样访问。
我的观点是,确保您也使用正确的ACL,如果其“只是”注册用户,那么知道Joomla结构的任何人都可以进入。同样正如Brian所说,请确保允许注册已关闭。
您应该能够通过覆盖前端登录表单的布局来完成此操作。在布局文件顶部附近添加一些PHP代码。此添加的代码检查URL中的自定义参数和特定值。如果有人尝试通过任何URL访问登录页面,但不包括自定义参数和特定值(例如abc = xyz),则代码将发出“ return;”。这样就不会处理表单的布局以进行显示。
使用覆盖布局文件中的此代码,只有知道URL(包括此自定义参数和可接受值)的用户才能使用该登录表单。
例如: 秘密URL可以是
mydomain.com/?option=com_users&view=login&abc=xyz
然后将此代码添加到登录表单的覆盖布局文件顶部附近:
if(JFactory::getApplication()->input->get('abc')!='xyz'){
return;
}
我经常遇到类似的问题,因为我经常需要前端登录才能编辑我管理的网站,而无需登录表单。我最终创建了一个小书签 ,将其添加到浏览器工具栏中。显然,这是一个非常“本地”的解决方案,因为只有我(或我将代码复制到的任何人)都可以使用小书签,但是它可以在任何Joomla网站上使用,并且可以节省大量时间,只需单击链接和登录表单即可。将会显示(当然,前提是您在Joomla网站上...)。
javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());