目前我使用这些重写规则/条件:
RewriteEngine On
RewriteRule ^/forum/.* https://mineyourmind.net/forum/$1 [R=301,L]
RewriteRule ^/contao/.* https://mineyourmind.net/contao/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/forum
RewriteCond %{REQUEST_URI} !^/contao
RewriteCond %{HTTP_HOST} ^(www\.)?mineyourmind\.de$ [NC]
RewriteRule (.*) https://mineyourmind.net/de%{REQUEST_URI} [R=301,L]
它们完美无缺,每次重写都应保持不变,而不是一次。
如果您访问mineyourmind.de(主要/主站点),我不会将其重定向到mineyourmind.net/de。它应该重定向到mineyourmind.net,重写.net站点可以决定语言。
我无法解决这个问题,你会怎样管理这个?
修改
这些重写规则存在 no 问题,我在apache站点配置中使用它们。我只想要将每个发送到mineyourmind.de(根网址)的内容发送到mineyourmind.net并不发送到mineyourmind.net/de。所有其他重定向应该保持不变。
EDIT2:
''=所有其他网站(不是root,不是论坛/ ,不是contao / *)
答案 0 :(得分:1)
试试这段代码:
RewriteEngine On
RewriteRule ^/?((?:forum|contao).*)$ https://mineyourmind.net/$1 [R=301,L,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?mineyourmind\.de$ [NC]
RewriteRule ^/?$ http://mineyourmind.net/ [R=301,L]
RewriteCond %{REQUEST_URI} !^/(contao|forum) [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?mineyourmind\.de$ [NC]
RewriteRule ^ https://mineyourmind.net/de%{REQUEST_URI} [R=301,L]
这会跳过mineyourmind.de (the main/home site)
重定向到mineyourmind.net
,因为使用^/?.+$
正则表达式确保它不是主页/根页。