通过Apache服务Laravel项目时,我可以保护公共子文件夹吗?

时间:2019-05-15 08:28:58

标签: laravel apache http-basic-authentication

我有一个在Laravel中运行并通过Apache服务的webapp。

众所周知,Laravel的应用程序根是<path_to_project_code>/public

我希望在{em> /public下的受保护文件夹中,<path>/public/apidoc

我正在尝试

<VirtualHost <ip_redacted>:80>
        ServerName  www.mydomain.com
        ServerAlias www.mydomain.com
        ServerAdmin info@mycompany.it
        ServerPath  /www.mydomain.com

        DocumentRoot /var/www/www.mydomain.com/public/
        DirectoryIndex index.html index.php

        <Directory /var/www/www.mydomain.com/public/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
            Require all granted
        </Directory>

        <Directory "/var/www/www.mydomain.com/public/apidoc">
            AuthType Basic
            AuthName "Authentication Required"
            AuthUserFile "/etc/htpasswd/.www.mydomain.com.passwd"
            Require valid-user

            Order allow,deny
            Allow from all
        </Directory>

        CustomLog ${APACHE_LOG_DIR}/vhosts/www-mydomain-com/access.log vhost_combined
        ErrorLog  ${APACHE_LOG_DIR}/vhosts/www-mydomain-com/error.log

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.mydomain.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

如此配置后,www.domain.com就可以从....../public开始使用了,可以了。 并且www.domain.com/apidoc....../public/apidoc提供服务,没关系。

但是访问www.mydomain.com/apidoc不需要我想要的和我期望的http auth

添加的信息

/ public / apidoc的内容是由APIDocjs生成的静态html文件。

我正在尝试做的事情就是开发中正在工作的Nginx的简单等效方法

location /apidoc {
   auth_basic            "Restricted Area";
   auth_basic_user_file  /etc/nginx/sites-auth/www.mydomain.com.password;
}

我只需要将这4行从Nginx移植到Apache

1 个答案:

答案 0 :(得分:0)

已解决。

我删除了整个部分

<Directory "/var/www/www.mydomain.com/public/apidoc">
...
</Directory>

用此内容创建了/public/apidoc/.htaccess

AuthType Basic
AuthName "APIDoc"
AuthUserFile  /etc/htpasswd/.www.mydomain.com.passwd
Require valid-user

需要有效用户