我对Apache.htaccess
语言一无所知,坦率地说,我现在没有时间研究它。
我已将我的网站划分为以下目录:
/My-Website
/admin
/public
对我来说,使用不同的文件夹将管理门户与公共网站分开似乎是一种很好的做法。管理员是管理更新内容的地方,公共是公共的。
但是,这样,我面临两个关键问题:
- 我以某种方式配置了 .htaccess 以将所有 URL 重定向到
/public
目录。但是我想要/admin
目录的例外。这意味着当用户输入mywebsite.com
时,它应该自动重定向到/public
,而不是当用户输入mywebsite.com/admin
时。我不确定 .htaccess 是否有解决方案或 PHP,但欢迎两者兼而有之。
在我的管理目录中 - ,我在管理目录中有JS文件和其他xml。做了一个测试,发现用户可以通过明确访问 admin 目录中的所有文件,例如:未经授权
mywebsite.com/admin/may_be_sensitive.xml
。我该如何解决这个问题?
我非常乐于接受建议,即使这意味着我需要以不同的结构重新组织我的整个网站。
您不需要任何重定向。
/public 应该是根,因此您网站的公共部分将在 https://example.com 可见
/admin 应该像 https://example.com/admin 一样是公共(您的 webroot(之外的子目录,并且应该使用适当的身份验证过程(如基本身份验证、一次性令牌或其他形式的安全身份验证(进行保护。
可以使用.htaccess 文件保护管理文件夹,但如果您有权访问服务器配置文件,则在服务器配置文件中执行此操作更安全。
寄件人: http://httpd.apache.org/docs/current/howto/auth.html
<Directory "/usr/local/apache/htdocs/secret">
AuthType Basic
AuthName "Restricted Files"
AuthUserFile "/usr/local/apache/passwd/passwords"
</Directory>
密码文件是使用 htpasswd 实用程序创建的。