【问题标题】:htaccess redirect all subdomains + www to domain with cname, vhosts and htaccesshtaccess 将所有子域 + www 重定向到具有 cname、vhosts 和 htaccess 的域
【发布时间】:2014-03-22 11:53:06
【问题描述】:

对于知道的人来说,我有一个相当简单的问题,我只是找不到我需要的答案。我已经转移到 vps 并尝试自己配置 vm。我需要重定向:

  1. domain.com - 默认
  2. www.domain.com -> domain.com
  3. *.domain.com -> domain.com

我已经为 www -> 非 www 完成了 .htaccess,所以我有:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

添加了 A 和 CNAME:

  • www-@
  • * - @

添加虚拟主机

  • ServerAlias www.domain.com *.domain.com

我做得对吗(CNAME、vhost、.htaccess)还是可以做得更简单?

你能帮我重定向 *.domain.com -> domain.com(在 .htaccess 中猜测)吗?

【问题讨论】:

  • 您要重定向哪些子域?或者你想重定向所有子域
  • 所有子域。例如 wwww2.domain.com / asda.domain.com -> 全部重定向到 domain.com(不带 www)

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

重定向 *.domain.com -> domain.com

只需将您的规则更改为:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^[^.]+\.(domain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]

【讨论】:

  • 这可以与多级子域一起使用吗? this.sorta.domain.com?
  • 保持第一个条件为:RewriteCond %{HTTP_HOST} ^.+?\.(domain\.com)$ [NC]
  • @Leo:发布一个包含所有详细信息的新问题,我会参加。
【解决方案2】:

创建 .htaccess 并粘贴它

 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$   [NC]
 RewriteRule ^ http://domain.com/  [L,R]

【讨论】:

    【解决方案3】:

    在您的 Apache 配置中将您的服务器别名设置为 *.domain.com,在您的服务器名称下方:

    ServerName domain.com
    ServerAlias *.domain.com
    

    一切非www:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$   [NC]
    RewriteRule ^ http://domain.com/  [L,R]
    

    一切都到 www:

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$   [NC] 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^ http://www.domain.com/  [L,R] 
    

    【讨论】:

      猜你喜欢
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      相关资源
      最近更新 更多