2013-05-31 73 views
0

我試圖從基於htaccess的重定向排除少數URIhtcaccess外部重定向不排除URI

我htaccess的指令是波紋管

<IfModule mod_rewrite.c> 
     RewriteEngine on  
     # 
     RewriteCond %{HTTP_HOST} ^(www\.)?domain1.com$ [NC] 
     RewriteRule !=/test$ http://domain2.com [L,R=301,NC] 
     # 


      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteCond %{REQUEST_FILENAME} !-d 
      RewriteCond %{REQUEST_URI} !=/favicon.ico 
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
    </IfModule> 

什麼錯呢?任何建議?

我都以不同的方式嘗試以及

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_URI} !=/test 
    RewriteRule (.*) http://domain2.com? [R=301,L] 

    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

</IfModule> 

雖然做外部重定向,將URI的排斥,測試未生效。如果我正在進行內部重寫,它的工作正常。

回答

1

也許這個作品:

Options +FollowSymlinks 

<IfModule mod_rewrite.c> 
RewriteEngine on 

RewriteCond %{REQUEST_URI} !/test 
# Add next line 
RewriteCond %{REQUEST_URI} !index\.php [NC] 
RewriteRule (.*) http://domain2.com? [R=301,L] 

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
</IfModule> 
+0

這個工作對不包括測試URI,但domain1.com沒有進行重定向作爲的index.php是排斥。 – Architect

+0

條件僅適用於下一條規則。在這種情況下,爲外部重定向。不適用於其他規則。確保在進行任何測試之前瀏覽器的緩存已清除。 –

+0

這按預期工作 – Architect