2012-03-29 140 views
1

我需要通过页面列表,以显示他们的子域子站点重定向URL重写

未来当用户输入这个网址在浏览器

XYZ .mydomain.com来/

应该通过但正如

www.mydomain.com/level1/pageA? 子域= XYZ

XYZ .mydomain.com来/ innerpage_abc?参数1 = 123

作为

www.mydomain.com/level1/ innerpage?dynamicparam = abc & param1 = 123 & subdomain = xyz

+0

浏览器中的URL是否成为“www.mydomain.com/level1/ ...”? – anubhava 2012-03-29 14:43:35

+0

不,在重写时子网域URL不应该在浏览器中更改 – Rohit 2012-03-29 14:45:37

+0

在这种情况下,您需要启用mod_proxy。你的两个域都指向相同的DOCUMENT_ROOT和相同的Apache Web服务器吗? – anubhava 2012-03-29 14:54:13

回答

0

启用mod_rewrite和mod_proxy。然后将此代码放在DOCUMENT_ROOT下的.htaccess中:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(xyz)\.mydomain\.com$ [NC] 
RewriteRule ^$ http://www.mydomain.com/level1/pageA?subdomain=%1 [L,P,QSA] 

RewriteCond %{HTTP_HOST} ^(xyz)\.mydomain\.com$ [NC] 
RewriteCond %{QUERY_STRING} (?:^|&)param1=([^&]+) [NC] 
RewriteRule ^([^_]+)_([^/]+)/?$ http://www.mydomain.com/level1/$1?dynamicparam=$2&subdomain=%1 [NC,L,P,QSA] 
+0

谢谢anubhava,我会明天当我在域上实现它 – Rohit 2012-03-29 15:19:43

+0

有一个问题,在第二次重写,URL从'xyz.mydomain .com/innerpage ...'到'http://www.mydomain.com/level1/ ...'在浏览器 – Rohit 2012-03-30 17:26:14

+0

那么你可以看到'P'(代理)标志在这两个规则中都有他们都应该以同样的方式行事。首先适合你吗? – anubhava 2012-03-30 17:51:14