我的网站有一个管理页面(例如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这样做吗?知道从哪里开始?
答案 0 :(得分:1)
如果您为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]
答案 1 :(得分:0)
我真的不明白你想要做什么(或者你真的需要拥有页面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.