.htaccess使用通配符子域重定向到另一个域

.htaccess使用通配符子域重定向到另一个域,.htaccess,mod-rewrite,wildcard-subdomain,.htaccess,Mod Rewrite,Wildcard Subdomain,我在这里看了一整天,虽然我看到了类似的问题,我已经设法得到了我的问题的部分答案,但我仍然缺少一个主要部分 我试图做的事情是,在我的系统中使用动态子域(例如username.mydomain.dk) 到目前为止,我所管理的: 更改DNS以支持通配符*.mydomain.dk 从我的主域(www.simon-smith.dk)重定向Make.htaccess 已成功查看mydomain.dk页面 现在的问题是,我有几个网站共享相同的IP地址。www.simon-smith.dk是主域名,mydoma

我在这里看了一整天,虽然我看到了类似的问题,我已经设法得到了我的问题的部分答案,但我仍然缺少一个主要部分

我试图做的事情是,在我的系统中使用动态子域(例如username.mydomain.dk)

到目前为止,我所管理的:

  • 更改DNS以支持通配符*.mydomain.dk
  • 从我的主域(www.simon-smith.dk)重定向Make.htaccess
  • 已成功查看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]
    
    # *.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]
    
    我可以从url访问subrequest参数,没有任何问题,但是url参数不再注册


    有没有一种方法可以使用.htaccess来执行此重定向,或者我必须使用mydomain.dk作为主域的Web服务器才能正确执行重定向?

    进一步挖掘并使用了一些很好的ol’反复试验,我发现了我的错误

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

    # 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]
    
    # *.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]