[英]How do I get two variables to use in an .htaccess redirect?
我正在嘗試根據Cookie值和查詢字符串值進行重定向,但似乎無法使兩個值都能正確返回。 我正在使用:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_COOKIE} secret=([^;]+) [AND]
RewriteCond %{QUERY_STRING} ^file=(\w+)$
RewriteRule ^downloads/(.*)/$ /downloads/%1/%2
並使用網址“ /downloads/?file=protected/doc.pdf”。 我想重定向到“ / downloads / [secret cookie_val] /protected/doc.pdf”
謝謝!
沒有[AND]
標志。 默認情況下,條件一起“與”。
另外,如果您請求/downloads/?file=protected/doc.pdf
,則正則表達式中的/
太多了:
RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{QUERY_STRING}:::%{HTTP_COOKIE} ^file=(\w+):::secret=([^;]+)
RewriteRule ^downloads/(.*)/?$ /downloads/%2/%1
編輯:剛意識到您正在嘗試使用%2
訪問先前的RewriteCond
反向引用,該引用將為空白,因為您已經用%{QUERY_STRING}
創建了另一個分組。 因此,您需要將2個變量組合為一個RewriteCond
並與以下對象進行匹配:%{QUERY_STRING} :::%{HTTP_COOKIE}。 然后,您將能夠同時反向引用查詢字符串和cookie。
RewriteCond %{ENV:REDIRECT_STATUS} !200
用於防止重寫引擎循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.