mod_rewrite 詞法比較 (mod_rewrite lexical comparison)


問題描述

mod_rewrite 詞法比較 (mod_rewrite lexical comparison)

NOTE: following code is surrounded by a RewriteCond/RewriteRule that skips the cases so they do not get ran again after the redirect takes place.

Why can't I get this to test true?

RewriteCond %{REQUEST_FILENAME} ="/unique/test/test"
RewriteRule ^.*$ /match [R=301,L]

I'm outputing everything with the following line and I can clearly see what REQUEST_FILENAME is:

RewriteRule (.*) /test$1-filename-%{REQUEST_FILENAME}-URI-%{REQUEST_URI} [R=301,L]

but I can't get it to match.

I was originally trying to do something like this to test if had modified the path from the original URI or not, but seeing as I cannot get the above to test true, this certainly does not work:

RewriteCond %{REQUEST_FILENAME} =%{REQUEST_URI} 

參考解法

方法 1:

In RewriteCond, variables are only expanded within the first argument. So with your RewriteCond you are actually comparing the value of REQUEST_FILENAME with the literal string %{REQUEST_URI}.

To do what you intended, you need to do some trick:

RewriteCond %{REQUEST_FILENAME}#%{REQUEST_URI} ^([^#]+)#\1$

(by Derek LitzGumbo)

參考文件

  1. mod_rewrite lexical comparison (CC BY-SA 3.0/4.0)

#apache #mod-rewrite






相關問題

多個相同的 url htaccess 重定向 (Multiple same url htaccess redirect)

無法在 XAMPP 中進行 301.htaccess 重定向 (Cannot 301.htaccess redirect in XAMPP)

Tối ưu hóa truy vấn MySQL PHP - Phản hồi (MySQL PHP Query Optimization - Feedbacks)

域和子域之間的不同會話 (Different session between domain and subdomain)

CXF REST 服務中配置日誌的問題 (Issue in configuring log in CXF rest service)

lighttpd:身份驗證後如何將端口(僅對本地主機可見)轉發到 WAN? (lighttpd: How to forward port (visible only to localhost) to WAN after authentication?)

mod-rewrite 結合了兩種不同的重寫規則 (mod-rewrite combine two different rewrite rules)

過期/緩存控制標頭的問題 (Problem with Expires/Cache-Control Headers)

安全的 PHP 文件上傳 (Secure PHP file uploading)

Apache:如何在未安裝 mod_expires 的情況下將 Expires 標頭添加到文件中 (Apache: How to add Expires headers to files without mod_expires installed)

mod_rewrite 詞法比較 (mod_rewrite lexical comparison)

.htaccess https、www 和子域靜默重寫 (.htaccess https, www and subdomain silent rewrite)







留言討論