【问题标题】:Hiding admin page as a subdomain将管理页面隐藏为子域
【发布时间】:2012-02-19 12:46:35
【问题描述】:

我有一个网站,它有一个通常通过 mydomain.com/admin.php 访问的管理页面(例如 admin.php)

我希望能够做的是使用 htaccess 来映射 “admin.mydomain.com”到“mydomain.com/admin.php”,这样用户永远不会知道它是一个“文件”。

也就是说,如果有人在外部尝试访问“mydomain.com/admin.php”,我希望它是 404。

现在,对于更困难的部分:admin.php 页面将希望将链接作为“/admin.php?param=value”等提供,因此我需要查看引用者 (???)让它按预期工作。

htaccess 可以做到这一点吗?知道从哪里开始吗?

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    如果您已为admin.mydomain.com 设置了与mydomain.comDocumentRoot 相同IP 地址的记录,

    那么这可以在你的 .htaccess 中像这样完成:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{ENV:REDIRECT_STATUS} 200
    RewriteRule ^ - [L]
    
    RewriteCond %{HTTP_HOST} ^(admin\.) [NC]
    RewriteRule ^ %1php [L]
    
    RewriteCond %{REQUEST_URI} admin\.php$ [NC]
    RewriteRule ^ - [R=404,L]
    

    【讨论】:

      【解决方案2】:

      我真的不明白你想要做什么(或者真的为什么你绝对需要拥有页面mydomain.com/admin.php)。

      如果您试图对用户“隐藏”它,为什么不实际创建一个子域,将文件放在子域中,在整个子域上实施安全性,然后就不需要搞乱重定向、引荐来源网址或查询字符串。

      为了安全起见,你可能想做this

      在您的 .htaccess 中放置:

      AuthUserFile /path/to/htpasswd/file/.htpasswd
      AuthGroupFile /dev/null
      AuthName "MyDomain Admin Area"
      AuthType Basic
      require valid-user
      

      使用this等生成器创建文件.htpasswd

      那么您将无需向用户隐藏页面,因为没有正确的用户名和密码,他们将得到 403。

      【讨论】:

      • 文件不能放在其他地方的原因是我使用的是第 3 方 cms,我需要复制安装...由于许可,这实际上可能无法实现。
      猜你喜欢
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多