Apache 使用htaccess重定向Url而不更改浏览器Url

Apache 使用htaccess重定向Url而不更改浏览器Url,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我的URL如下所示: domain.com/web/xyz domain.com/web/abc domain.com/web/efg 所有这些URL都是动态生成的,唯一不变的部分是domain.com/web/ 我需要的是,上面的网址应该可以通过 xyz.domain.com abc.domain.com efg.domain.com 我使用.htaccess实现了这一点,但它将URL从xyz.domain.com更改为domain.com/web/xyz,这是我不想要的。我希望URL

我的URL如下所示:

  • domain.com/web/xyz
  • domain.com/web/abc
  • domain.com/web/efg
所有这些URL都是动态生成的,唯一不变的部分是domain.com/web/

我需要的是,上面的网址应该可以通过

  • xyz.domain.com
  • abc.domain.com
  • efg.domain.com
我使用.htaccess实现了这一点,但它将URL从xyz.domain.com更改为domain.com/web/xyz,这是我不想要的。我希望URL保持不变

代码如下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/demo_stores/%1/ [L,NC,QSA]

您不能以内部方式进行跨域重定向。您可以使用回退主机处理对这些主机名的所有请求。然后,您可以进行内部重写,而不是重定向,因此可以重定向到路径,而不是url。抱歉,但请您详细解释一下,因为我是这个领域的新手,或者建议一些资源,感谢从
xyz.domain.com
domain.com
的重定向始终作为外部重定向进行。因此,浏览器被告知更改URL并发出新请求。这显然会改变浏览器中可见的URL。要使重写保持在内部(服务器内部),您必须坚持使用相同的域。因此,您无法重定向到另一个域名的完整URL。相反,您必须注意在内部处理服务器端(主机或回退主机)上的一个虚拟主机对所有主机名(您称为“子域”)的传入请求。您不能以内部方式进行跨域重定向。您可以使用回退主机处理对这些主机名的所有请求。然后,您可以进行内部重写,而不是重定向,因此可以重定向到路径,而不是url。抱歉,但请您详细解释一下,因为我是这个领域的新手,或者建议一些资源,感谢从
xyz.domain.com
domain.com
的重定向始终作为外部重定向进行。因此,浏览器被告知更改URL并发出新请求。这显然会改变浏览器中可见的URL。要使重写保持在内部(服务器内部),您必须坚持使用相同的域。因此,您无法重定向到另一个域名的完整URL。相反,您必须注意在内部处理服务器端(主机或备用主机)的一个虚拟主机对所有主机名(您称为“子域”)的传入请求。