我已经浏览了互联网,并且不知道为什么我的维护页面重定向和重写规则不适用于任何代理材料或通过https传播的任何内容。
我正在使用安装了tomcat 6.0.24的Apache 2.2.3服务器。
我有以下htaccess文件:
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} !/maintenance.html
RewriteCond %{REQUEST_URI} !/images/(.*)$
RewriteCond %{REQUEST_URI} !/scripts/(.*)$
RewriteCond %{REQUEST_URI} !/styles/(.*)$
RewriteCond %{REMOTE_ADDR) !^123.456.789.100
RewriteRule $ /maintenance.html [R=302,L]
它将我的所有http页面重定向到维护页面,并且我的所有图像,脚本和样式都能正常工作。但是,它不会重定向从另一台计算机代理的任何https页面。
因此,http://mypage.com/documents
会重定向到维护,而https://mypage.com/users
不会重定向。
不幸的是,用户是代理服务,它位于后端服务器上,而文档是前端服务器上的静态页面。
是否有办法强制代理和/或https材料重定向?或者我能否在我的htaccess文件中禁用mod_proxy以便不会代理任何内容?
答案 0 :(得分:0)
.htaccess
个文件(AllowOverride None
指令)。.htaccess
文件。这是一个动态配置文件。其余的配置(在apache文件中)是静态的,在性能上有很大的不同。但它无关: - )在解决方案上,如果您可以编辑实际配置文件,则使用VirtualHost级别的重定向,而不是目录(或.htaccess)或位置。因此它将始终应用:
ErrorDocument 503 /htdocs/err/maintenance.html
## uncomment below to enter maintenance mode
RedirectMatch 503 ^/(?!err/|images/|scripts/)
我通常使用一个简单的表单,只包含/ err子目录中的元素,并将不在此子目录中的所有内容重定向到503错误。然后,503由此err子目录中的维护页面处理。在这里,我添加了images/
和scripts/
子目录,没有测试表达式,但它应该可以工作,我想。