【问题标题】:rewrite rule base on first sub domain to directory将第一个子域的规则库重写到目录
【发布时间】:2012-10-20 04:59:58
【问题描述】:

我需要将任何域名的第一个子域重定向到该 Web 服务器的根文件夹到一个子文件夹。

  • 需要保留传入端口(愚蠢的 isp 阻塞端口 80 和 443)。
  • 它需要能够同时处理 http 和 https。
  • 需要忽略 www.whateverthedomain.ext

例如

  • dom1 : mydummy.com
  • dom2 : toberedirected.net
  • dom3 : putanydomainhere.ca

可能的传入网址

  1. http(s)://firstsub.mydummy.com:8082
  2. http(s)://whateveryoutypehere.thegoodsub.toberedirected.net
  3. http(s)://firstsub.mydummy.com/firstsub/
  4. http(s)://www.mydummy.com/

3个传入url的结果应该是

  1. http(s)://firstsub.mydummy.com:8082/firstsub/
  2. http(s)://thegoodsub.toberedirected.net/thegoodsub/(我不在乎第一个 sub 前面是什么)
  3. http(s)://firstsub.mydummy.com/firstsub/(不要重写,不是根文件夹)
  4. http(s)://www.mydummy.com/(不要重写,忽略 www 并给出域的默认网页)

这可能很容易写,但我今天早上想不通。

【问题讨论】:

    标签: apache .htaccess rewrite


    【解决方案1】:

    尝试将此添加到文档根目录中的 htaccess 文件中

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(.+)\.
    RewriteRule ^/?$ /%1/ [L,R=301]
    

    这应该在重定向时保留主机名和端口。它只会重定向对 web 根的请求,并将重定向到子域的名称,尾随 /

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多