2014-02-21 58 views
1
  1. 我有一個重定向所有從 /forum1 /產品/產品的請求htaccess的代碼與變量的RewriteCond重寫規則和使用的.htaccess。在/forum1/product/.htaccess的代碼如下:如何在同一時間

    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^(.*)$ /product/$1 [PT,L] 
    </IfModule> 
    

    該代碼完全適用於 「/ forum1 /產品/」, 「/ forum2 /產品/」, 「forum3 /產品/」, ...等等,所以我所有的論壇都使用相同的產品 代碼(我也在產品代碼中使用了$ _SERVER ['HTTP_REFERER'],所以 產品對每個論壇都有明確的響應)。

2.

我有產品,我不想從現場又一個新版本。 所以想設置一個cookie「版本」,並在此基礎上 應該重定向到相應product_ <版本號的版本>由 文件夾指:
How to do htaccess redirect based on cookie value

RewriteCond %{HTTP_COOKIE} ^version=([0-9]*)$ [NC] 
    RewriteRule .* http://localhost/product_%1/ [R=301,L] 
    RewriteRule .* http://local-host/product/ [R=301,L] 

1和2都工作正常seperately。我想合併這兩個條件。

所以如果cookie的「版本」設置爲2,則/論壇/產品重定向到/ product_2但仍顯示URL /論壇/產品,但它將會使用/ product_2

的文件夾結構如下:

/forum1/product/.htaccess 
/forum2/product/.htaccess 
/forum3/product/.htaccess 
/product/version.txt 
/product_1/version.txt 
/product_2/version.txt 

我認爲下面的代碼應該工作:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_COOKIE} ^version=([0-9]*)$ [NC] 
RewriteRule ^(.*)$ /product_%1/$1 [PT,L] 
RewriteRule ^(.*)$ /product/$1 [PT,L] 
+0

也許這可以幫助http://stackoverflow.com/questions/7218164/multiple-rewriterules-for-single-rewritecond-in-htaccess – CodeAngry

+0

和'RewriteCond'變量'%1 +',而'RewriteRule'變量是'$ 1 +'。所以你可以很容易地將它們組合在同一個'RewriteRule'中。 – CodeAngry

+0

是的,我試過了。花了一些時間,但最後我得到了它的工作。 – Ketan

回答

1

得到了解決:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_COOKIE} ^version=([0-9]*)$ [NC] 
RewriteRule ^(.*)$ /product_%1/$1 [PT,L] 
RewriteRule ^(.*)$ /product/$1 [PT,L] 
0

您可以使用:

RewriteEngine On 

RewriteCond %{HTTP_COOKIE} version=([0-9]+) [NC] 
RewriteRule^/product_%1/ [L] 

RewriteRule ^(.+)$ /product/$1 [L] 
+0

的文件夾結構是:
/forum1/product/.htaccess
/forum2/product/.htaccess
/forum3/product/.htaccess
/product/version.txt
/product_1/version.txt
/product_2/version.txt
如果「cookie版本」設置爲1,那麼http://localhost/forum1/product/version.txt應該顯示1 – Ketan

+0

現在,您對「version.txt」感到困惑在你的問題中沒有提到這一點。你可以編輯問題並澄清一點。 – anubhava