如何将subdomain和subsubdomain重写成一个参数?
How to rewrite subdomain and subsubdomain into a parameter?
任何人都可以帮助重写 apache
吗?
假设我有域 domain.com
我想要的:
If people request www.domain.com then return www.domain.com (ie
index.php in my root directory)
If people request subA.subB.domain.com then return
www.domain.com?sub=subA.subB
If people request sub.domain.com then return www.domain.com?sub=sub
If people request domain.com then return www.domain.com
我知道这里的规则是自己动手。我有。例如,类似的问题 here 要求重定向到 /subA/subB - 但即使我理解了这个答案,我也不知道如何根据我的需要调整它,即 ?sub=subA.subB 。多年来,我曾多次尝试理解重写。好的,/sobstory -off.
这将重写您的子域:
RewriteEngine on
RewriteCond %{QUERY_STRING} !^sub=
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+)\.domain\.com$
RewriteRule ^(/?)$ ?sub=%1
根据需要替换域。确保每个 .
前面都有一个斜线,就像现在一样。
它只适用于索引页。如果你想让它在 domain.com/
之后有东西时工作,请告诉我。
至于使 http://domain.com
起作用,我建议将其重定向到 www.domain.com
,这样您就不会从搜索引擎中遇到重复的内容问题。这样做(将其添加到上面的下方):
RewriteCond %{HTTP_HOST} =domain.com
RewriteRule ^ http://www.domain.com%{REQUEST_URI} [R=301,L]
在那个点之前不需要斜杠。
如果其中任何一项对您不利,请告诉我。
基于评论的原始发布者后记:
上述解决方案对于问题是正确的,但假定服务器上的配置如下:
- 已添加子域 *.domain.com 并指向站点的文档根目录
- 一个'A record' for *.domain.com已经在DNS配置中配置并指向服务器的IP地址
任何人都可以帮助重写 apache
吗?
假设我有域 domain.com
我想要的:
If people request www.domain.com then return www.domain.com (ie index.php in my root directory)
If people request subA.subB.domain.com then return www.domain.com?sub=subA.subB
If people request sub.domain.com then return www.domain.com?sub=sub
If people request domain.com then return www.domain.com
我知道这里的规则是自己动手。我有。例如,类似的问题 here 要求重定向到 /subA/subB - 但即使我理解了这个答案,我也不知道如何根据我的需要调整它,即 ?sub=subA.subB 。多年来,我曾多次尝试理解重写。好的,/sobstory -off.
这将重写您的子域:
RewriteEngine on
RewriteCond %{QUERY_STRING} !^sub=
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+)\.domain\.com$
RewriteRule ^(/?)$ ?sub=%1
根据需要替换域。确保每个 .
前面都有一个斜线,就像现在一样。
它只适用于索引页。如果你想让它在 domain.com/
之后有东西时工作,请告诉我。
至于使 http://domain.com
起作用,我建议将其重定向到 www.domain.com
,这样您就不会从搜索引擎中遇到重复的内容问题。这样做(将其添加到上面的下方):
RewriteCond %{HTTP_HOST} =domain.com
RewriteRule ^ http://www.domain.com%{REQUEST_URI} [R=301,L]
在那个点之前不需要斜杠。
如果其中任何一项对您不利,请告诉我。
基于评论的原始发布者后记:
上述解决方案对于问题是正确的,但假定服务器上的配置如下:
- 已添加子域 *.domain.com 并指向站点的文档根目录
- 一个'A record' for *.domain.com已经在DNS配置中配置并指向服务器的IP地址