URL重定向,htaccess.如果找不到字符串,则捕获并插入字符串后



我希望通过以下重定向的htaccess解决方案获得一些帮助:

情况1(用户进入domain.com,应重定向到domain.com/nl

情况2(如果用户进入domain.com/nl或domain.com/fr,则不应重定向

情况3(用户进入domain.com/some-path,它应该捕获url路径并在其前面粘贴/nl,domain.com/nl/some-path

到目前为止,我已经尝试了以下规则:

Redirect 301 ^((?!(?:)nl($)|(?:)fr($)).)*$ domain.com/nl/$1

然而,在情况3中,只选择路径的最后一个字符,而不是整个"某个路径"。

使用多个规则也可以,但可以在一个规则中完成吗?

它可以在这样的单一规则中完成:

RewriteEngine On
RewriteCond %{THE_REQUEST} !s/+(?:nl|fr)[/?s] [NC]
RewriteRule ^ /nl%{REQUEST_URI} [L,NE,R=301]

请您尝试以下内容,并使用所示的示例进行编写和测试。请确保在测试URL之前清除浏览器缓存。

RewriteEngine ON
##For adding nl to home/base page.
RewriteRule ^/?$ http://%{HTTP_HOST}/nl [R=301,NE,L]
##For dealing with pages NOT starting with nl or fr here.
RewriteCond %{REQUEST_URI} !^/(nl|fr) [NC]
RewriteRule ^ /nl%{REQUEST_URI} [R=301,NE,L]

最新更新