.htaccess 如何更改htaccess的子域名?

wz3gfoph  于 2023-02-09  发布在  其他
关注(0)|答案(2)|浏览(138)

我需要重定向子域,如

^([a-z]{2}|ceb|haw|hmn|zh-CN|zh-TW).example.com/uk/(.*)$

例如:

de.example.com/uk/
ceb.example.com/uk/

重定向至http://$1.example.com/en/
例如:

de.example.com/en/
ceb.example.com/en/

如何在.htaccess中进行更改?
我尝试使用以下方法,但不起作用:

RewriteRule ^([a-z]{2}|ceb|haw|hmn|zh-CN|zh-TW)/uk http://$1.ts2.space/en [R=301,L]
643ylb08

643ylb081#

RewriteRule * 模式 * 仅与URL路径匹配。要匹配主机名,您需要额外的 * 条件 *(RewriteCond指令)并与HTTP_HOST服务器变量(即Host HTTP请求头的值)匹配。
在您的示例中,您重定向到相同的主机,因此不需要在 * substitution * 中使用反向引用,并且可以完全省略scheme + hostname。
例如,下面的代码按照第一个示例将de.example.com/uk/重定向到de.example.com/en/

RewriteCond %{HTTP_HOST} ^([a-z]{2}|ceb|haw|hmn|zh-CN|zh-TW)\.example\.com
RewriteRule ^uk/$ /en/ [R=302,L]

注意:不要忘记在正则表达式中反斜杠转义文字点。
参考:

  • https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
  • https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
eivnm1vs

eivnm1vs2#

谢谢你。
出了问题。我在. htaccess的第一行添加了代码,但它不起作用。
我有一个Apache人。

相关问题