Apache 将基于第一个子域的规则重写到目录

Apache 将基于第一个子域的规则重写到目录,apache,.htaccess,rewrite,Apache,.htaccess,Rewrite,我需要将任何域名的第一个子域名重定向到一个子文件夹,该域名将命中该web服务器的根文件夹 它需要保留传入端口(阻止端口80和443的愚蠢isp) 它需要能够处理http和https 它需要忽略www.whateverthedomain.ext 前 dom1:mydummy.com dom2:ToberDirected.net 域3:putanydomainhere.ca 可能传入的url http(s)://firstsub.mydummy.com:8082 http(s)://what

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

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

  • dom1:mydummy.com
  • dom2:ToberDirected.net
  • 域3:putanydomainhere.ca
可能传入的url

  • http(s)://firstsub.mydummy.com:8082
  • http(s)://whateveryoutypehere.thegoodsub.toberedired.net
  • http(s)://firstsub.mydummy.com/firstsub/
  • http(s)://www.mydummy.com/
  • 3个传入url的结果应为

  • http(s)://firstsub.mydummy.com:8082/firstsub/
  • http(s)://thegoodsub.toberedired.net/thegoodsub/(我不在乎第一个子前面是什么)
  • http(s)://firstsub.mydummy.com/firstsub/(不要重写,它不是根文件夹)
  • http(s)://www.mydummy.com/(不要重写、忽略www并提供域的默认网页)

  • 写起来可能很容易,但我今天早上还没弄明白。

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

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(.+)\.
    RewriteRule ^/?$ /%1/ [L,R=301]
    
    这将在重定向时保留主机名和端口。它将只重定向对web根目录的请求,并将重定向到子域的名称,尾部带有一个
    /