Apache 关于www的htaccess http_主机问题

Apache 关于www的htaccess http_主机问题,apache,.htaccess,Apache,.htaccess,我使用以下规则将domain.com重定向到https://mail.google.com/a/domain.com这样我的客户就可以查看他们的邮件了 RewriteRule ^mail https://mail.google.com/a/%{HTTP_HOST} [R=301,L,NC] 问题是www.domain.com最终出现在https://mail.google.com/a/www.domain.com这是不正确的。是否有不包含www的变量?或者,有人能帮我把它脱下来吗 作为一个切题

我使用以下规则将
domain.com
重定向到
https://mail.google.com/a/domain.com
这样我的客户就可以查看他们的邮件了

RewriteRule ^mail https://mail.google.com/a/%{HTTP_HOST} [R=301,L,NC]
问题是
www.domain.com
最终出现在
https://mail.google.com/a/www.domain.com
这是不正确的。是否有不包含www的变量?或者,有人能帮我把它脱下来吗

作为一个切题:有人知道用于测试htaccess文件的web工具吗?在测试htaccess时,我遇到了很多缓存问题,我认为一个简单的模拟环境会很棒


谢谢

请使用RewriteCond并匹配域名。之后,您可以在重写规则中反向引用它,如下所示:

RewriteCond %{HTTP_HOST}  ([^.]+(\.|\.co\.|\.com\.)[^.]+)$
RewriteRule ^e?mail       https://mail.google.com/a/%1 [R=301,L,NC]
([^.]+\[^.]+)$
将匹配域的最后两个部分,用点分隔

编辑:
([^.]+(\.\124;\.co\.[^.]+)$
也将匹配DOMAIN.TLD和DOMAIN.co.TLD

Edit2:
^e?mail
表示DOMAIN.TLD/mail和DOMAIN.TLD/email将重定向


Edit3:
([^.]+(\.\124;\.co\.\124;\.com\.[^.]+)$
form DOMAIN.com.TLD,还有一点更正,缺少一个点。

使用相同的逻辑,是否需要这样的工作
RewriteCond%{HTTP_HOST}www.(.*)
@cronoklee是的,这是我的第一个答案,但更正为这个。我原以为可能会出现更多的子域,但我马上添加了co部分。非常感谢-如果我还想将^email重定向到同一个url,是否需要重写第二行或%1是否保留在内存中?@cronoklee实际上没有,
www.(.*)
不起作用。相反,
^(www\)?(.*)$
,反向引用应该是
%2
添加了与
电子邮件
匹配的部分。