我们neeed apache .htaccess重定向每个语言url [duplicate]

We neeed apache .htaccess redirect per languages url [duplicate]

提问人:Simone 提问时间:10/12/2023 更新时间:10/13/2023 访问量:35

问:

我们将放弃对我们网站上某些语言的管理。我们想执行 301 重定向

我需要apache .htaccess中的这个语言重定向301规则:

/es /pt /ru等。。

/en

等等....../es/page_path /pt/page_path /ru/page_path

/en/page_path

你能帮帮我吗?

tks 西蒙妮

Apache .htaccess 重定向

评论

1赞 CBroe 10/12/2023
为什么“有人能帮我吗?”不是一个实际的问题?
2赞 CBroe 10/12/2023
你试过什么,怎么没用?这个网站不是“为我做这个”的服务,你应该先自己做出适当的努力。关于URL重写的基础知识有很多解释,例如参考:mod_rewrite,URL重写和“漂亮的链接”解释

答:

1赞 Stephen Ostermiller 10/12/2023 #1

您可以使用以下任一方法。如果您有其他重写规则,您可能想使用重写规则,否则我会坚持使用更简单的别名重定向。.htaccess

测试时,从临时 (302) 重定向开始,然后在知道它们正常工作后将其更改为永久 (301) 重定向。这可以防止您自己的浏览器缓存错误的重定向,从而阻止您测试修复是否有效。

使用mod_alias

Redirect permanent /es /en
Redirect permanent /pt /en
Redirect permanent /ru /en

使用 mod_rewrite

RewriteEngine  on
RewriteRule "^/?(es|pt|ru)(/.*)?$" "/en$2" [L,R=301]

评论

0赞 Simone 10/13/2023
嗨,非常感谢你,它几乎是完美的,但是有一个问题,如果我有一个以语言前缀代码之一开头的 url。例如,/essential 变成 /ensential,可能您必须使用 es/pt/等......然后单独管理主页
0赞 Stephen Ostermiller 10/13/2023
如果 URL 路径已本地化,您将无法使用该 HD 访问来执行重定向。您需要保留这些语言的翻译,并使用编程语言来查找翻译并适当地重定向。
0赞 Simone 10/13/2023
我是这样说的:RewriteRule “^/?(es/|pt/|ru/)(.*)$“ ”/en/$2“ [L,R=301] .它似乎有效。你觉得怎么样?
1赞 Stephen Ostermiller 10/13/2023
我想我找到了一个可以重定向的规则,但不是.它被编辑到答案中。/es/es//es/foo/essential
0赞 Simone 10/13/2023
现在看来是 perfetc。非常感谢