mod_rewrite:RewriteCond特殊的HTTP /?

时间:2014-05-20 18:29:13

标签: .htaccess mod-rewrite url-rewriting

最近我偶然发现了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 /"在行尾?

由于

隐喻

1 个答案:

答案 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的结束。