2015-11-30 23 views
1

我有一個將名爲「chk」的cookie設置爲值「0」的系統。現在,我需要使用htaccess,每次用戶點擊我的服務器時都會添加此值+1。我想下面的代碼,但它不工作:使用htaccess添加cookie的值

RewriteEngine On 
RewriteCond %{HTTP_COOKIE} (^|;)?chk=([0-9]+)(;|$) 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [L,NE,R=302,CO=chk:%2 + 1:localhost:1:/:false:false] 

在第三行我嘗試添加「+1」到第二線捕獲的值,但它不工作。任何想法?

評論被一些人在這裏提供的答案(因爲某些原因去除答案):

你的代碼幾乎工作!問題在於cookie「chk」連接了值而不是「+1」。我需要1成爲2,2成爲3 ...你的代碼讓1成爲「1 + 1」,2成爲「2 + 1」......任何想法如何解決這個問題?有了這個修復程序,你完全可以回答作品!

+0

什麼語言是您使用?我個人會在PHP中這樣做。這很容易,不必爲此惹惱.htaccess。 –

+0

@Starkeen did not work cause%1 is matching - >(^ |;) – Samul

+0

@PanamaJack你說得對,PHP比較容易,但是這個服務器出於安全原因不能解釋像PHP這樣的語言。 – Samul

回答

0

沒有必要重定向請求,讓請求通過觸及 :

RewriteEngine On 
RewriteCond %{HTTP_COOKIE} (^|;)?chk=([0-9+]+)(;|$) 
RewriteRule ^(.*)$ - [CO=chk:%2+1:localhost:1:/] 
+0

%2 + 1是串聯的,我需要它來求和。任何想法? – Samul

+0

您的請求通過的建議非常好,但Cookie不會將它連接在一起。你能檢查一下嗎? – Samul

+0

Apache不計算cookie值中的數字,它將數字視爲字符串,這就是爲什麼1 + 1變成1 + 1而不是2 – starkeen