You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Drupal 9站点特定子文件夹允许执行Python脚本?

解决Drupal根目录下自定义子文件夹Python脚本无法执行的问题

核心问题出在Drupal根目录的.htaccess规则上——默认情况下,它会把所有非静态文件/目录的请求都导向index.php,导致Python脚本被当作普通文本文件输出,而不是执行。下面是具体解决步骤:

1. 修改根目录的.htaccess,豁免目标子文件夹

找到根目录(public_html/)下的.htaccess文件,定位到RewriteEngine On之后的重写规则段,添加一条排除规则,让Apache跳过对python目录的Drupal路由转发:

RewriteEngine On

# 新增:豁免python目录,直接处理该目录下的请求
RewriteCond %{REQUEST_URI} !^/python/

# 保留原有的Drupal重写规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

2. 为python目录配置CGI执行规则

在public_html/python/目录下新建或修改.htaccess文件,添加以下规则,告诉Apache将.py文件当作CGI脚本执行:

AddHandler cgi-script .py
Options +ExecCGI

3. 验证Python脚本的shebang头

确保你的Python脚本第一行指定了正确的解释器路径,比如:

#!/usr/bin/env python3

如果不确定服务器的Python路径,可以通过SSH执行which python3命令获取准确路径,替换上面的内容。

为什么放在子目录时能正常运行?

当Drupal部署在public_html/drupal9/时,根目录的.htaccess没有Drupal的重写规则,python目录的请求直接由Apache处理,自然会执行CGI脚本,不受Drupal路由逻辑干扰。

内容的提问来源于stack exchange,提问作者Dean Reeds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:05:25