【发布时间】:2020-10-30 20:36:17
【问题描述】:
加载 Django 管理页面时,您会加载默认的 Django 管理 css / js 文件。例如,example.com/staticfiles/admin/css/base.css。
我启用了默认的 Amazon WAF(防火墙)规则,该规则会阻止对 URL 中包含“admin”一词的页面的所有访问。到目前为止,这非常棒——因为大多数机器人都喜欢寻找/admin 域。
但是,这最终会阻止 Django 管理员。我可以使用urls.py 中的一行代码将Django 管理URL 重命名为/manager,但是我不知道如何更改管理静态文件的文件路径。由于所有静态文件都被阻止,我目前在我的管理员中获取原始的、未设置样式的 HTML。
理想情况下,我可以在settings.py 中写:
ADMIN_FOLDER_NAME = 'manager'
然后
example.com/staticfiles/admin/css/base.css 将被重写为 example.com/staticfiles/manager/css/base.css。
我如何告诉 Django 在不同的文件夹中查找管理文件?
注意
我不是在问如何重命名访问管理页面的 url。我说的是管理静态文件。下面的代码确实改变了管理页面的 url,但没有改变静态文件的 url。
urlpatterns += [url(r'^newadminurl', admin.site.urls)]
【问题讨论】:
-
为什么要阻止访问
/admin?机器人仍会在/manager找到您的管理面板,但这并不会使其更加安全。 -
您关于如何更改管理员路由的问题已经回答了很多次。例如stackoverflow.com/questions/968380/changing-admin-site-url
-
@robinsax
/manager是一个示例名称——我真正使用的新管理员名称是一个随机字符串。我并不关心他们是否找到它,就像我关心能够阻止 1000 次随机尝试在网络服务器级别找到我的管理门户一样。我的应用程序因尝试/phpMyAdmin快速射击的机器人而崩溃。 -
@robinsax 那是不同的——我说的是答案不会改变的静态文件。编辑我的问题以澄清。
-
@SafwanSamsudeen 我看不出这与回答问题有什么关系。