django - 将子文件夹请求重定向到乘客
问题描述
我想mysite.com/subfolder/...
通过Passenger将所有请求重定向到Django应用程序,并将所有其他请求重定向到在某些php cms下运行的网站。
文件结构:
- .htaccess
- 子文件夹/
- .htaccess
- 一些 cms 文件
根目录.htaccess
:
RewriteEngine on
... RewriteConds and RewriteRules generated by php cms
内容subfolder/.htaccess
:
PassengerAppRoot "/home/username/djangoapplication"
PassengerPython "/home/username/virtualenv/webapp/2.7/bin/python2.7"
问题是关于 root .htaccess
。当 root.htaccess
为空(仅限 constails RewriteEngine on
)时,类似的请求mysite.com/subfolder/...
由subfolder/.htaccess
Django 应用程序加载处理。但是当 root.htaccess
包含由 php cms 生成的行时,所有请求都会mysite.com/subfolder/...
从 cms 导致 404 错误页面。
所以我想从 cms 过滤像before s 这样的请求mysite.com/subfolder/...
,将其替换为 404 错误页面,但我不知道该怎么做。subfolder/.htaccess
RewriteRule
解决方案
如果根文件只包含 mod_rewrite 指令,那么您可以通过简单地启用重写引擎.htaccess
来完全覆盖根文件。.htaccess
/subfolder/.htaccess
例如:
RewriteEngine On
PassengerAppRoot "/home/username/djangoapplication"
PassengerPython "/home/username/virtualenv/webapp/2.7/bin/python2.7"
默认情况下,mod_rewrite 指令默认不被继承(与其他模块不同)。但是,有可能在您的服务器配置中专门启用了 mod_rewrite 继承,因此这可能不起作用。
如果这不起作用,那么您需要在根.htaccess
文件的顶部创建一个异常,以防止请求/subfolder/
被覆盖。例如:
RewriteRule ^subfolder - [L]
当URL.htaccess
以/subfolder
.
推荐阅读
- gluon - 观察到的服务模块不包含在 jpackage 中
- javascript - 找到匹配文本后单击特定兄弟
- graphql - 在 prisma GraphQL 中按电子邮件过滤
- javascript - 通过阅读 Google Analytics cookie 获得独特的会话
- java - 循环迭代以在 arraylist 中注入对象在 Drools 中不起作用
- python - 在 Python 中以不常见的格式读取 ASCII 文件
- angularjs - 等效于单元格复制的 ag-grid 企业功能 EnableRangeSelection (AngularJS)
- python - 如何将散点图转换为等高线图?
- split - AttributeError:“DatasetAutoFolds”对象没有属性“split”
- javascript - 查找 html 字符串中的所有 p 标签(正则表达式)(javascript)