2016-09-29 64 views
1

我的htaccess如下:使用htaccess的重定向的所有頁面,但一到另一個域

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain\.es$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.es$ 
RewriteRule ^(.*)$ http://www.domain.com/es [L,R=301] 

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?section=$1 [QSA,L] 

基本上它的功能是將所有重定向域別名(即domain.mobi)到domain.com,除了域。這將被重定向到domain.com/es。然後有另一個rewriterule附加查詢字符串(所以在後臺,domain.com/test變爲domain.com/index.php?section=test)

我的問題是,現在我需要排除一個url(www .domain.es/landing)從重定向(所以它停留在domain.es),我不能使它工作。我已經嘗試添加該條件的前兩個規則要排除的頁面:

RewriteCond %{REQUEST_URI} !^/landing$ 

但隨後去www.domain.com/es?section=landing(不僅仍然重定向到domain.com;查詢字符串出現在瀏覽器欄中)。有任何想法嗎?

回答

0

您可以使用這些規則:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.es$ [NC] 
RewriteCond %{THE_REQUEST} !/landing[\s?] [NC] 
RewriteRule ^(.*)$ http://www.domain.com/es/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{THE_REQUEST} !/landing[\s?] [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?section=$1 [QSA,L] 
+0

,幾乎工程; www.domain.es/landing停留,但它顯示了一個404頁面,我想這是因爲最後一條規則(帶有index.php的規則)沒有應用。 – Borgtex

+0

感謝您的更新,但不努力,現在它去www.domain.com/es/index.php?section=landing – Borgtex

+0

是的,這工作更好,它留在頁面中,並顯示內容,但是現在所有的圖像和樣式表都被破壞了,因爲它們都重定向到了domain.com。我會嘗試添加一些額外的REQUEST_FILENAME條件以查看它是否有效 – Borgtex

相關問題