htaccess - 将子域重定向到另一个URL并对其进行掩码

时间:2015-03-20 16:06:58

标签: apache .htaccess

我想要所有的要求 " forum.maximumtrainer.com"重定向到 " http://maximumtrainer.com:4567/" 我的实际论坛在哪里举办。

我尝试了很多htaccess代码但没有成功。 我可以正常重定向,但我希望URL始终保持" forum.maximumtrainer.com /..."而不是改为" maximumtrainer.com:4567 /.."

这是我当前的htaccess文件(第一个规则适用于论坛)

RewriteEngine on

#Just do a normal redirect, not hiding the new URL
RewriteCond %{HTTP_HOST} ^forum.maximumtrainer.com$ [NC]
RewriteRule ^(.*)$ http://maximumtrainer.com:4567%{REQUEST_URI} [R=301,NC,L]

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

1 个答案:

答案 0 :(得分:0)

要屏蔽它,您需要使用DNS。使用类似Fowarding with Masking的内容。您需要在注册商处检查您的设置,以便通过屏蔽进行Fowarding。但通常不会显示URI

或者,如果要将请求转发到后端或其他服务器,则需要使用可在apache配置中启用的mod_proxymod_proxy_http

ProxyPass / http://maximumtrainer.com:4567
ProxyPassReverse / http://maximumtrainer.com:4567

使用mod_rewrite

RewriteCond %{HTTP_HOST} ^forum.maximumtrainer.com$ [NC]
RewriteRule ^(.*)$ http://maximumtrainer.com:4567%{REQUEST_URI} [P,NC]
ProxyPassReverse / http://maximumtrainer.com:4567

注意:您不能在.htaccess中使用ProxyPass和ProxyPassReverse。它需要位于Apache配置或vhost文件中。

仅在.htaccess中使用[P]标志

RewriteCond %{HTTP_HOST} ^forum.maximumtrainer.com$ [NC]
RewriteRule ^(.*)$ http://maximumtrainer.com:4567%{REQUEST_URI} [P,NC]

http://httpd.apache.org/docs/2.4/rewrite/proxy.html