cho*_*ata 5 .htaccess redirect http-status-code-301
这个问题可能已得到解答,但我似乎无法找到合适的解决方案.
我想301重定向所有页面,如下所示
http://www.domain1.com/nl/dolor/sith
http://www.domain1.com/nl/loremipsum
http://www.domain1.com/nl
Run Code Online (Sandbox Code Playgroud)
到新域,同时删除查询字符串,如下所示:
http://www.domain2.nl
Run Code Online (Sandbox Code Playgroud)
所有其他页面,例如http://www.domain1.com/be/loremipsum应该仍然可以使用.只有带后缀的那些nl应该重定向.
请注意,这些不是真正的目录:在我的.htaccess文件中,我有以下语句来重写我的查询字符串:
# Personal Rewrites
RewriteRule ^([A-Za-z0-9-_]+)/?$ index.php?lid=$1 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4&pl4=$5 [L]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php?lid=$1&pl1=$2&pl2=$3&pl3=$4&pl4=$5&pl5=$6 [L]
Run Code Online (Sandbox Code Playgroud)
我尝试过传统的重写,但这也发送了查询字符串:
Redirect 301 /nl http://www.domain2.nl
Run Code Online (Sandbox Code Playgroud)
其他技术似乎不起作用.而且我不擅长正则表达式......
有人可以提供或链接到合适的解决方案吗?提前致谢
将此规则添加为DOCUMENT_ROOT/.htaccess中的第一条规则:
RewriteRule ^nl(/.*|)$ http://www.domain2.nl/? [L,R=301,NC]
Run Code Online (Sandbox Code Playgroud)
关于正则表达式的另一个提示:
你应该改变你的正则表达式使用:[\w-]而不是[A-Za-z0-9-_]:
\w 相当于 [a-zA-Z0-9_]