我的 Flask 应用程序正在提供一个页面,该页面应该通过 .htaccess 文件限制访问。我知道我已经正确配置了 Apache 和 .htaccess 文件,因为它对同一目录中的 .php 文件工作正常。我需要做些什么才能让 Flask(或 wsgi)按预期运行吗?
您可以在 apache 配置中插入相同的代码,而不是使用目录中的
.htaccess
文件。首先,您需要通过覆盖目录指令来启用 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>
包装纸。并且 RewriteBase
在服务器上下文中无效。我们需要使用 lookahead (LA-U:)
来检索请求映射到的文件名。