gpt4 book ai didi

apache - 重写域扩展

转载 作者:行者123 更新时间:2023-12-04 04:51:33 24 4
gpt4 key购买 nike

我有一个带有多个域扩展名的网站:

example.com
example.de
example.fr
example.co.uk

我希望人们被重定向到 .com域,以便 url 重写如下:
example.de        -> http://www.example.com/?loc=de
example.fr -> http://www.example.com/?loc=fr
www.example.co.uk -> http://www.example.com/?loc=uk

但是,我不知道如何选择 URL example.(fr)/bla 的域扩展部分并重写。我意识到我可以为每个前例创建特殊情况:
RewriteCond %{HTTP_HOST} !^(www\.)?example\.de$
RewriteRule .* http://www.example.com/?loc=de [L,R=301]

但是我想这样做,如果我购买更多扩展,我就不需要更新 httpd.conf文件等

任何建议表示赞赏!

最佳答案

创建涵盖多个域的规则非常简单。为了实现你想要的,你可以做这样的事情:

RewriteCond %{HTTP_HOST} ^(www\.)?example\.(de|fr|co\.uk)$
RewriteRule .* http://www.example.com/?loc=%2 [R]

需要 example.de并将其重写为 example.com/~loc=de根据要求,也适用于 .fr , 和 .co.uk .但是需要注意的是,它重写了 .co.uk版本为 example.com/~loc=co.uk ,这不是您想要的。它还需要针对新域进行修改。

所以,这是一个更通用的解决方案,但应该可以实现您想要的:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.(co\.)?(.*)$
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$
RewriteRule .* http://example.com/?loc=%3 [R]

现在稍微解释一下:

第一 RewriteCondexample 匹配任何域在其中,例如 example.co.uk , www.example.de , www.example.xxx

第二个 RewriteCond确保 HTTP_HOST 不是 example.comwww.example.com .

最后是 RewriteRule重写与这两个规则匹配的任何内容,并将域的最后一部分作为参数粘贴到末尾。
http://www.example.co.uk/ -> http://example.com/?loc=uk http://www.example.de/ -> http://example.com/?loc=de http://www.example.xxx/ -> http://example.com/?loc=xxx http://www.example.com/不重定向。

请注意,在上述解决方案中,如果用户去了 http://www.example.de/some/path/index.php ,路径不会被重定向。如果你想要这个功能,那么我们需要在重定向中包含路径:
RewriteRule (.*) http://example.com/$1?loc=%3 [R]

关于apache - 重写域扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com