.htaccess 将管理页面隐藏为子域

.htaccess 将管理页面隐藏为子域,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个网站有一个管理页面(例如admin.php),通常通过mydomain.com/admin.php访问 我希望能够使用htaccess访问地图 “admin.mydomain.com”改为“mydomain.com/admin.php”,用户永远不会知道这是一个“文件” 也就是说,如果外部有人试图访问“mydomain.com/admin.php”,我希望它是404 现在,对于更困难的部分:admin.php页面将希望作为“/admin.php?param=value”等提供链接,因此我

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

我希望能够使用htaccess访问地图 “admin.mydomain.com”改为“mydomain.com/admin.php”,用户永远不会知道这是一个“文件”

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

现在,对于更困难的部分:admin.php页面将希望作为“/admin.php?param=value”等提供链接,因此我需要查看推荐人(??),以使其按预期工作


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

我真的不明白你想做什么(或者你为什么一定要有这个页面
mydomain.com/admin.php

如果您试图对用户“隐藏”它,为什么不实际创建子域,将文件放在子域中,在整个子域上实现安全性,那么就不需要再处理重定向、引用或查询字符串了

为了安全起见,您可能需要执行以下操作:

在您的.htaccess put中:

AuthUserFile /path/to/htpasswd/file/.htpasswd
AuthGroupFile /dev/null
AuthName "MyDomain Admin Area"
AuthType Basic
require valid-user
使用生成器创建文件.htpasswd,例如


然后,您将不需要对用户隐藏页面,因为如果没有正确的用户名和密码,他们将获得403。

如果您为
admin.mydomain.com
设置了与
mydomain.com
相同的IP地址以及相同的
DocumentRoot
的记录

然后可以在.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]

文件不能放在其他地方的原因是我使用的是第三方cms,我需要复制安装…这可能实际上是不可能的,因为授权。