.htaccess 我希望从example.com向mydomain.example/domains发出请求的用户重定向到mydomain.com/userdomain

.htaccess 我希望从example.com向mydomain.example/domains发出请求的用户重定向到mydomain.com/userdomain,.htaccess,redirect,request,httprequest,vanity-url,.htaccess,Redirect,Request,Httprequest,Vanity Url,我希望从example.com向mydomain.example/domains发出请求的用户重定向到mydomain.example/userdomain。这就像根据用户的域名实现虚荣URL一样。 我知道,我们可以使用.htaccess重定向规则来执行,但不知道如何执行。我已经尽可能地编辑了以下代码,但没有办法对其进行测试。如果它不起作用的话,它会让你靠近的 RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^/(.*) http://%

我希望从
example.com
mydomain.example/domains
发出请求的用户重定向到
mydomain.example/userdomain
。这就像根据用户的域名实现虚荣URL一样。
我知道,我们可以使用
.htaccess
重定向规则来执行,但不知道如何执行。

我已经尽可能地编辑了以下代码,但没有办法对其进行测试。如果它不起作用的话,它会让你靠近的

RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^/(.*) http://%1/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^/(.*) mydomain.example/%1/$1 [L]
我们应该做到这一点。但我自己不能很快测试。有两件事需要注意: 您必须立即使用HTTP_主机来测试域。使用重写规则行中的%1从括号中的HTTP_主机行获取变量

您还必须首先使用R=301永久重定向将所有到www的请求重定向到非www。可能不这样做,但我目前不确定如何提取主机的非www部分,而不管它是否存在。对于访问
www.example.com
的任何人,R=301会将重定向消息发送回浏览器。然后浏览器将点击
example.com
,您的第二条
重写规则将与之匹配。由于其301(永久),浏览器将缓存重定向,并始终自行为用户执行非www操作

如果这不起作用,请与其他一些关于URL重定向的教程进行比较,并参考此精彩页面:

很抱歉,我对上面的代码进行了进一步编辑,以便在未经测试的情况下尽可能做到最好。如果没有其他人回应,祝你好运!这不会导致重定向循环吗
userdomain.com/test
=>
mydomain.com/userdomain.com/test
=>
mydomain.com/mydomain.com/userdomain.com/test
等。它不应该这样做。第一个条件/规则对将匹配www.something.com的任何内容重新路由到something.com。这会发生一次,因为something.com在缺少www时不会被重定向。第二个条件/规则对将在something.com上拾取并在内部将其传输到mydomain.com/something.com/我们是否在相互跟踪?请注意,第二个条件/规则对是“内部重定向”它告诉Apache从何处获取请求URI的文件。它不像第一对那样是一个实际的浏览器重定向。假设userdomain.com和mydomain.com没有指向同一个vhost(我假设是这样的),您的回答是正确的