【问题标题】:.htaccess redirect to another domain using wildcard subdomains.htaccess 使用通配符子域重定向到另一个域
【发布时间】:2013-07-11 13:42:42
【问题描述】:

我在这里看了一整天,虽然我看到了类似的问题并且我设法得到了我的问题的部分答案,但我仍然错过了一个主要部分。

我想要做的是,在我的系统中使用动态子域(例如 username.mydomain.dk)。

到目前为止我所管理的:

  1. 更改 DNS 以支持通配符 *.mydomain.dk
  2. 从我的主域 (www.simon-smith.dk) 进行 .htaccess 重定向
  3. 成功查看 mydomain.dk 页面

现在的问题是,我有几个网站共享相同的 IP 地址。 www.simon-smith.dk 是主域,mydomain.dk 也在这个 IP 上。因此,在请求 *.mydomain.dk 时,我将首先访问 www.simon-smith.dk。从这里我在 .htaccess 中添加了以下内容:

# *.mydomain.dk redirectd
RewriteCond %{HTTP_HOST} !^www\.mydomain\.dk$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain.dk$ [NC]
RewriteRule ^(.*)$ http://mydomain.dk/?subrequest=%1 [P,L,QSA]

这里我是使用P标志去其他域,但是显然这会阻塞mydomain.dk上的重写规则,如下:

# match those that do not have language code
RewriteCond %{REQUEST_URI} !^/public/[a-z]{2}/ [NC]
RewriteRule ^(.*)$ index.php?url=$1 [PT,L,QSA]

# match those that DO have a language code
RewriteCond %{REQUEST_URI} !^/public/js/
RewriteRule ^([a-z]{2})/(.*)$ index.php?lang=$1&url=$2 [PT,L,QSA]

我可以从url访问子请求参数没有任何问题,但是url参数不再注册。

有没有办法使用 .htaccess 来执行此重定向,或者我是否必须获得一个以 mydomain.dk 作为主域的网络服务器才能正确完成重定向?

【问题讨论】:

    标签: .htaccess mod-rewrite wildcard-subdomain


    【解决方案1】:

    进一步挖掘并使用了一些好的尝试和错误,我发现了我的错误。

    在我的主域 www.simon-smith.dk 上,我只需附加正确的请求 uri 即可使其工作,如下所示:

    # *.mydomain.dk redirectd
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.dk$ [NC]
    RewriteCond %{HTTP_HOST} ^(.*)\.mydomain.dk$ [NC]
    RewriteRule ^(.*)$ http://mydomain.dk/$1?subrequest=%1 [P,L,QSA]
    

    【讨论】:

      猜你喜欢
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 2014-03-16
      • 1970-01-01
      • 2020-05-26
      • 2016-03-26
      相关资源
      最近更新 更多