在第一个子域到目录的基础上重写规则

时间:2012-10-19 14:47:53

标签: apache .htaccess rewrite

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

  • 需要保留传入端口(阻塞端口80和443的愚蠢isp)。
  • 它需要能够同时处理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/
  5. 3个传入网址的结果应为

    1. HTTP(S)://firstsub.mydummy.com:8082 / firstsub /
    2. http(s):// thegoodsub.toberedirected.net/thegoodsub/(我不在乎第一个子面前的内容)
    3. http(s)://firstsub.mydummy.com/firstsub/(不要重写,它不是根文件夹)
    4. http(s)://www.mydummy.com/(不要重写,忽略www并提供域名的默认网页)
    5. 这可能很容易写,但今天早上我无法弄明白。

1 个答案:

答案 0 :(得分:0)

尝试将其添加到文档根目录

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

这应该在重定向时保留主机名和端口。它只会重定向Web根目录的请求,并会重定向到子域名,后跟/