最近我偶然发现了Joomla的mod_rewrite代码片段,其中包含一个我不完全理解的RewriteCond。
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://www.example.com/$1 [R=301,L]
第二个条件限制为* / index.php,但" HTTP /"在行尾?
由于
隐喻
答案 0 :(得分:0)
%{THE_REQUEST}
变量是HTTP请求的第一行,如下所示:
GET /index.php HTTP/1.1
细分,它或多或少是“METHOD”(GET / POST / HEAD / etc),URI(/index.php,/foo/bar.php?something等)和HTTP版本(HTTP) /1.1,HTTP / 1.0)。
最后并不需要HTTP/
,因为\.php
之后的空格的存在意味着请求URI的结束。