Php 如何将异常添加到.htaccess重定向规则

Php 如何将异常添加到.htaccess重定向规则,php,regex,apache,.htaccess,Php,Regex,Apache,.htaccess,我对Apache.htaccess语言一无所知,坦率地说,我现在没有时间研究它 我已将我的网站划分为以下目录: /My-Website /admin /public 在我看来,用不同的文件夹将管理门户与公共网站分开似乎是一种好的做法。Admin是管理部门更新内容的地方,public是,嗯,public 然而,这样一来,我面临两个关键问题: 我以某种方式将.htaccess配置为将所有URL重定向到/public目录。但是我想要/admin目录的一个例外。这意味着,当用户进入mywebs

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

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

/My-Website
  /admin
  /public
在我看来,用不同的文件夹将管理门户与公共网站分开似乎是一种好的做法。Admin是管理部门更新内容的地方,public是,嗯,public

然而,这样一来,我面临两个关键问题:

  • 我以某种方式将.htaccess配置为将所有URL重定向到
    /public
    目录。但是我想要
    /admin
    目录的一个例外。这意味着,当用户进入
    mywebsite.com
    时,它应该自动重定向到
    /public
    ,但当用户进入
    mywebsite.com/admin
    时,它就不会这样做了。我不确定.htaccess是否会有解决方案或PHP,但欢迎两者都使用
  • 在我的管理目录中,我的管理目录中有JS文件和其他xml。做了一个测试,发现用户可以访问admin目录中的所有文件,例如:未经授权,显式转到
    mywebsite.com/admin/may\u be\u sensitive.xml
    。我如何处理这个问题

  • 我非常愿意接受建议,即使这意味着我需要以不同的结构重新组织我的整个网站。

    您不需要任何重定向

    /public应该是根目录,这样您的网站的公共部分就可以在

    /admin应该是一个子目录,与public(您的webroot)类似,并且应该使用适当的身份验证过程(如基本身份验证、一次性令牌或其他形式的安全身份验证)进行保护

    可以使用.htaccess文件保护admin文件夹,但如果您有权访问它,则在服务器配置文件中这样做更安全

    发件人:

    
    AuthType Basic
    AuthName“受限文件”
    AuthUserFile“/usr/local/apache/passwd/passwords”
    

    密码文件是使用htpasswd实用程序创建的。

    为什么要将其标记为javascript?
    <Directory "/usr/local/apache/htdocs/secret"> 
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile "/usr/local/apache/passwd/passwords"
    </Directory>