2013-10-20 14 views
1

的RewriteCond /重写规则 - 在我使用这些重写规则/条件的时刻的Apache 2

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网站可以决定语言。

我无法得到这个工作,你会如何管理这个?


编辑:

没有问题,这些重写规则,我在Apache的网站配置中使用它们。我只是希望每一个去mineyourmind.de(根网址)是指向mineyourmind.net和而不是到mineyourmind.net/de。所有其他重定向应该保持不变。

EDIT2:

  • mineyourmind.de/ - > mineyourmind.net
  • mineyourmind.de/forum - > mineyourmind.net/forum/
  • mineyourmind.de/contao - > mineyourmind达网络/ contao
  • mineyourmind.de/* - > mineyourmind.net/de/*

'=所有其他网站(不是根用户,不是论坛/,不contao/*)

+0

您正在使用永久重定向,这意味着浏览器会缓存重定向。它可能使用旧的重定向。将'[R = 301]'改成'[R]'(临时重定向)。然后清除浏览器的缓存并添加应该将网站根目录重定向到首选网址的规则。 – Sumurai8

+0

不,我从不使用Chrome进行重定向测试。 – user2693017

回答

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因为使用^/?.+$正则表达式是确保它不是主页/根页面。

+0

我觉得我的问题不清楚。此规则适用于/ – user2693017

+0

感谢您澄清,现在查看我编辑的答案。 – anubhava

+0

mineyourmind.de仍然重定向到mineyourmind.net/de而不是mineyourmind.net。 – user2693017