Apache 如何将子域和子域重写为参数?
有人能帮我重写一下apache吗 假设我有一个域名Apache 如何将子域和子域重写为参数?,apache,mod-rewrite,subdomain,Apache,Mod Rewrite,Subdomain,有人能帮我重写一下apache吗 假设我有一个域名domain.com 我想要的是: 如果有人请求www.domain.com,则返回www.domain.com(即 index.php(在我的根目录中) 如果有人请求subA.subB.domain.com,则返回 www.domain.com?sub=subA.subB 如果有人请求sub.domain.com,则返回www.domain.com?sub=sub 如果有人请求domain.com,请返回www.domain.com 我知道这里
domain.com
我想要的是:
如果有人请求www.domain.com,则返回www.domain.com(即
index.php(在我的根目录中)
如果有人请求subA.subB.domain.com,则返回
www.domain.com?sub=subA.subB
如果有人请求sub.domain.com,则返回www.domain.com?sub=sub
如果有人请求domain.com,请返回www.domain.com
我知道这里的规则是自己动手。我有。例如,类似的问题要求重定向到/subA/subB,但即使我理解了这个答案,我也不知道如何使其适应我需要的内容,即?sub=subA.subB。多年来,我多次试图理解“重写”。好的,/sobstory-off.这将重写您的子域:
RewriteEngine on
RewriteCond %{QUERY_STRING} !^sub=
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+)\.domain\.com$
RewriteRule ^(/?)$ $1?sub=%1
根据需要替换域。确保每个
前面都有一个斜杠,就像现在一样
它只适用于索引页。如果你想让它在domain.com/
之后运行,请告诉我
至于制作<代码>http://domain.comwork,我建议将其重定向到www.domain.com
,这样您就不会从搜索引擎中收到重复的内容问题。这样做(将其添加到上面的下面):
在那一条上的点之前不需要斜线
如果这些对你没有好处,请告诉我
基于评论的原始海报附言: 上述解决方案对于该问题是正确的,但假定服务器上有以下配置:
- 已添加子域*.domain.com并指向站点的文档根目录
- 已在DNS配置中配置了*.domain.com的“A记录”,并指向服务器的IP地址
RewriteEngine on
RewriteCond %{QUERY_STRING} !^sub=
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+)\.domain\.com$
RewriteRule ^(/?)$ $1?sub=%1
根据需要替换域。确保每个
前面都有一个斜杠,就像现在一样
它只适用于索引页。如果你想让它在domain.com/
之后运行,请告诉我
至于制作<代码>http://domain.comwork,我建议将其重定向到www.domain.com
,这样您就不会从搜索引擎中收到重复的内容问题。这样做(将其添加到上面的下面):
在那一条上的点之前不需要斜线
如果这些对你没有好处,请告诉我
基于评论的原始海报附言: 上述解决方案对于该问题是正确的,但假定服务器上有以下配置:
- 已添加子域*.domain.com并指向站点的文档根目录
- 已在DNS配置中配置了*.domain.com的“A记录”,并指向服务器的IP地址