簡體   English   中英

無法使用 %1 引用 htaccess 中的 cookie 值

[英]Unable to reference cookie value in htaccess with %1

我是 .htaccess 文件的另一個新手,並且遇到了困難。 我正在嘗試讓文件檢查名為“path”的 cookie,然后查看 URI 是否包含它。 我正在嘗試以正確的方式使用 %1 以在文件中稍后引用 cookie 值,但我似乎無法使其正常工作。 這是我的 .htaccess 文件:

RewriteEngine On
#checking the cookie matches successfully
RewriteCond %{HTTP_COOKIE} path=/testing/rockwell/
#checking if the URI contains %1 (the value of the cookie) fails
RewriteCond %{REQUEST_URI} %1
#a literal string match works though
###RewriteCond %{REQUEST_URI} /testing/rockwell/  
RewriteRule .* http://www.example.com

我對 %1 做錯了什么? 我知道它應該允許我在 RewriteCond 中引用之前的匹配項。 我包含了注釋掉的 RewriteCond 以顯示我正在嘗試做什么。 對此的任何幫助將不勝感激。

所以我最終弄清楚了,這里是所有重要的東西:

首先,我首先需要使用括號來捕獲 cookie 的值。 其次,您只能在條件或規則的左側使用 % 或 $,而不能在右側使用(因為它用於 RegEx)。 現在,仍然可以將兩個左側的值相互比較,使用 Jon Lin 提交的一個非常簡潔且記錄不全的技巧,用於RewriteCond 內的這個問題%N 反向引用 我不得不稍微修改一下該行以適應我自己的用法,所以這里是(供參考):

RewriteCond %{HTTP_COOKIE} path=(.*)
RewriteCond %1::%{REQUEST_URI} ^(.*)::\1
RewriteRule .* - [L]

此代碼檢查是否在請求的 URI 的開頭找到了 cookie 的值,如果是,則不執行任何操作。 如果不匹配,則在此之后編寫的任何規則都將被執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM