2014-02-21 34 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