我要求OHS服务器(apache)将所有请求从域A重定向到域B,但页面只需要从域A呈现。以下配置似乎不起作用。
RewriteCond %{HTTP_HOST} ^http://portal.mycompany.com$
RewriteRule ^(.*)$ http://newportal.mycompany.com:85/$1 [R=301,L]
我做错了吗?
答案 0 :(得分:0)
通过这种方式,您的域A正在向用户浏览器发送重定向,因此该页面将从域B提供。
如果您必须让域A提供来自域B的页面,但用户不必查看域B,您可以从Proxy
检查ProxyPass
和/或mod_proxy
规则。
还有一件事,如果您通过域A代理域B,则可能需要重写内页链接,因此请查看ProxyHTMLEnable
和ProxyHTMLURLMap
答案 1 :(得分:0)
对于域重定向,您是否可以使用域名注册商中的CNAME或A记录将新域名B指向A?
答案 2 :(得分:0)
有几个问题。您无法执行301重定向并期望继续使用域A.您可以通过使用mod_proxy
和P
标志来实现此功能。此外,http_host
变量仅与主机名匹配。
您需要确保mod_proxy
已启用,您可以尝试此操作。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^portal.mycompany.com$
RewriteRule ^(.*)$ http://newportal.mycompany.com:85/$1 [P]
答案 3 :(得分:0)
点(。)是RewriteCond模式中的一个特殊字符,使用反斜杠转义它
试试这个
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.portal\.mycompany\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/?$ http://newportal.mycompany.com:85/$1 [R=301,QSA,NC,L]