2013-06-24 112 views
1

我正在使用多個子域共享主機中的CakePHP項目。由於Cake的htaccess問題,我不得不將主站點移動到一個子文件夾中,然後編寫一個新的htaccess將用戶重定向到此文件夾(同時保持子域請求不變)。在我的分htaccess文件看起來像:.htaccess:重寫條件並重寫問題

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
    RewriteCond %{REQUEST_URI} !^/domain/ 
    RewriteRule (.*) /domain/$1 
</IfModule> 

這適用於包含「www」前綴的請求的url,但也有一些問題,以http:// domain.com請求。在IE瀏覽器& Chrome瀏覽器中,該地址自行解析爲'www'網址,但在Safari中,它顯示目錄結構。

我需要弄清楚如何在重寫條件中包含http:// domain.com請求而不影響其他子域。

任何意見將不勝感激。謝謝。阿德里安

+0

有人嗎?請,我真的被困在這裏。謝謝 –

回答

1

更改%{HTTP_HOST}重寫條件爲

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
    RewriteCond %{REQUEST_URI} !^/domain/ [NC] 
    RewriteRule (.*) /domain/$1 [L] 
</IfModule> 
  • (www\.)??說:一個發生即使它可選的。
  • [L]標記爲最後,即重寫應停止在此規則。
  • [NC]使所有匹配不區分大小寫。
+0

感謝拉維,完美的工作 –

+0

它說我必須等5個小時才能獎勵賞金 –

+0

@AdrianTrainor不是問題。我可以等。 :) –

1

試試這個主機匹配:

^(www\.)?domain\.com$