-2

我希望从example.comto发出请求的用户mydomain.example/domains重定向到mydomain.example/userdomain. 这就像根据用户的域名实现虚 URL。我知道,我们可以使用.htaccess重定向规则来做到这一点,但不知道该怎么做。

4

1 回答 1

0

我已经尽我所能编辑了以下代码,但没有办法对其进行测试。如果它不起作用,它应该让你接近。

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

RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^/(.*) mydomain.example/%1/$1 [L]

应该做的伎俩。虽然我自己无法快速测试它。有两点需要注意:您必须在 RewriteCond 中使用 HTTP_HOST 来测试域。在 RewriteRule 行中使用 %1 从括号中的 HTTP_HOST 行获取变量。

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

如果这不起作用,请与其他一些关于 URL 重定向的教程进行比较,并参考这个精彩的页面: http ://httpd.apache.org/docs/2.2/rewrite/intro.html

于 2012-12-26T09:37:57.837 回答