将子文件夹请求重定向到 Passenger
Redirect subfolder request to Passenger
我想将 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
为空(仅包含 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
文件中的任何进一步处理。
我想将 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
为空(仅包含 RewriteEngine on
)时,mysite.com/subfolder/...
等请求由 subfolder/.htaccess
和 Django 应用程序加载处理。但是当 root .htaccess
包含由 php cms 生成的行时,所有像 mysite.com/subfolder/...
这样的请求都会导致 cms.
所以我想在来自 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
文件中的任何进一步处理。