2013-10-20 46 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