我想将所有请求重定向mysite.com/subfolder/...
到Passenger上的Django应用程序,并将所有其他请求重定向到在某些php 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"
问题是关于根.htaccess
。如果root.htaccess
为空(仅适用于RewriteEngine on
),则请求mysite.com/subfolder/...
将由subfolder/.htaccess
和Django应用程序加载处理。但是,当root.htaccess
包含php cms生成的行时,所有请求均mysite.com/subfolder/...
会导致从cms引发404错误页面。
所以我想过滤来自cms的s之前的请求mysite.com/subfolder/...
,将其替换为404错误页面,但我不知道该怎么做。subfolder/.htaccess
RewriteRule
如果根.htaccess
文件仅包含mod_rewrite指令,则可以.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]
.htaccess
URL以开头时,这会停止根文件中的任何进一步处理/subfolder
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句