Flask忽略.htaccess文件

c6ubokkw  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(104)

我的Flask应用程序正在提供一个页面,该页面应该通过.htaccess文件进行访问限制。我知道我正确配置了Apache和.htaccess文件,因为它对同一目录中的.php文件工作正常。是否需要以某种方式配置Flask(或mod-wsgi)才能使用.htaccess?
在我的.conf文件中,我有以下内容

WSGIDaemonProcess main_proc processes=8 python-home=/var/www/html/venv
WSGIScriptAlias / /var/www/html/wsgi.py
<Directory /var/www/html>
    WSGIProcessGroup main_proc
    WSGIApplicationGroup %{GLOBAL}
    AllowOverride All

    AuthType shibboleth                                                                                                                                                                                                                
    ShibRequestSetting requireSession 1                                                                                                                                                                                                
    Require shib-session                                                                                                                                                                                                               
</Directory>
fumotvh3

fumotvh31#

除了使用目录中的.htaccess文件,您还可以在apache配置中插入相同的代码。首先,您需要通过覆盖Directory指令来启用htaccess。

<Directory /var/www/flask_app>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

然后启用重写模式并重新启动Apache,

sudo a2enmod rewrite
sudo service apache2 restart

您可以在Apache配置文件中添加HTAccess代码。

RewriteEngine On

# (Requires Apache 2.4.8+)
RewriteOptions InheritDown

RewriteRule ^/index\.html$ - [L]
RewriteCond %{LA-U:REQUEST_FILENAME} !-f
RewriteCond %{LA-U:REQUEST_FILENAME} !-d
RewriteRule ^/. /index.html [L]

注意这里,<IfModule> Package 器不是必需的,并且RewriteBase在服务器上下文中是无效的,我们需要使用lookahead (LA-U:)来获取请求Map到的文件名。

相关问题