簡體   English   中英

如何在.htaccess重定向中使用兩個變量?

[英]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.

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