繁体   English   中英

将子文件夹请求重定向到乘客

[英]Redirect subfolder request to Passenger

我想将所有请求(如mysite.com/subfolder/...重定向到 Django 应用程序,并将所有其他请求重定向到在某些 php cms 下运行的网站。

文件结构:

  • .htaccess
  • 子文件夹/
    • .htaccess
  • 一些cms文件

root .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为空时(仅包含RewriteEngine on )请求,如mysite.com/subfolder/...subfolder/.htaccess和 Django 应用程序加载处理。 但是,当 root .htaccess包含由 php cms 生成的行时,所有像mysite.com/subfolder/...这样的请求都会导致来自 cms 的 404 错误页面。

所以我想在来自 cms 的RewriteRule s 将其替换为 404 错误页面之前将诸如mysite.com/subfolder/...类的请求过滤到subfolder/.htaccess ,但我无法弄清楚如何去做。

如果根.htaccess文件只包含 mod_rewrite 指令,那么您可以通过简单地在/subfolder/.htaccess启用重写引擎来完全覆盖根.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 以/subfolder开头时,这会停止根.htaccess文件中的任何进一步处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM