.htaccess rewrite将所有根URL重定向到除一个特定子目录外的新子目录

.htaccess rewrite将所有根URL重定向到除一个特定子目录外的新子目录,.htaccess,url,url-rewriting,root,subdirectory,.htaccess,Url,Url Rewriting,Root,Subdirectory,我的WP站点有两种语言。默认语言(EN)过去是默认语言,子目录中的第二语言(NL)是默认语言。现在,默认语言中的所有页面和目录也被移动到一个子目录中,根url只显示一个splah页面,您必须在其中选择您的语言 所以root.com/..中的所有内容都应该使用301重定向规则重定向到root.com/en/.. 除了root.com/nl/…中的所有内容,它们应该只留在root.com/nl/… 和除了保留root.com 我应该如何在htaccess文件中写入重定向规则?这实际上应该非常简单 我

我的WP站点有两种语言。默认语言(EN)过去是默认语言,子目录中的第二语言(NL)是默认语言。现在,默认语言中的所有页面和目录也被移动到一个子目录中,根url只显示一个splah页面,您必须在其中选择您的语言

所以
root.com/..
中的所有内容都应该使用301重定向规则重定向到
root.com/en/..

除了
root.com/nl/…
中的所有内容,它们应该只留在
root.com/nl/…

除了保留
root.com


我应该如何在htaccess文件中写入重定向规则?

这实际上应该非常简单

我们使用RewriteCond检查请求的URL路径是否以
/nl/
开头。
^
将模式锚定在测试字符串的开头,而
否定它

在重写规则模式中,我们要求路径至少由一个字符组成。领先的
/
此时已被剥离(仅当重写在.htaccess中配置时,但如果通过中央服务器配置完成,则情况会有所不同)-这意味着,在根URL处请求启动屏幕的路径将为“空”。通过在开始和结束时锚定模式,并使用
+
量词,我们要求路径必须至少包含一个字符,因此如果请求根路径,此规则将不起任何作用

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/nl/
RewriteRule ^(.+)$ /en/$1 [R=302,L]