[英]Redirect subfolder request to Passenger
我想将所有请求(如mysite.com/subfolder/...
重定向到 Django 应用程序,并将所有其他请求重定向到在某些 php 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.