如何向.htaccess重定向规则添加例外

时间:2018-07-02 19:25:30

标签: php regex apache .htaccess

我对Apache .htaccess语言一无所知,坦率地说,我目前没有时间研究它。

我已将网站划分为以下目录:

/My-Website
  /admin
  /public

在我看来,将管理门户网站与带有独特文件夹的公共网站分开似乎是一个好习惯。管理员是管理员更新内容的地方,公共是公共的。

但是,这样,我面临两个关键问题:

  1. 我已经将.htaccess配置为将所有URL重定向到/public目录。但是我想要/admin目录的例外。这意味着,当用户输入mywebsite.com时,它应该自动重定向到/public,而不是在用户输入mywebsite.com/admin时重定向。我不确定.htaccess是否会提供解决方案或PHP,但是两者都欢迎。
  2. 在我的admin目录中,我有JS文件和其他xml位于admin目录中。经过测试,发现用户可以通过显式转到例如mywebsite.com/admin/may_be_sensitive.xml,而无需授权来访问admin目录中的所有文件。我该如何解决?

即使您需要以不同的结构重新组织整个网站,我也乐于接受建议。

1 个答案:

答案 0 :(得分:1)

您不需要任何重定向。

/ public应该是根目录,因此您网站的公共部分将显示在https://example.com

/ admin应该是https://example.com/admin之类的公共(您的Web根)下的子目录,并应通过适当的身份验证过程(如基本身份验证,一次性令牌或某种其他形式的安全身份验证)进行保护。

可以使用.htaccess文件保护admin文件夹的安全,但是如果您有权访问服务器配置文件,则更安全。

发件人: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实用程序创建的。