什么是.htaccess元素REQUEST_FILENAME和THE_REQUEST?

时间:2013-06-20 10:53:41

标签: .htaccess

%{REQUEST_FILENAME}和%{THE_REQUEST}返回了什么内容?

我只是检查了我们的.htaccess文件,它突然出现在我身上,我对此知之甚少。下面的代码使用两者。它的工作原理我只想了解它。

#remove / at the end of URL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/$ /$1 [L,R=301]

#remove /index.php at the end of URL
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

干杯, 标记

1 个答案:

答案 0 :(得分:22)

感谢艾哈迈德the link 作为一个快速的参考点,任何懒得点击它的人都是我追求的......

  

THE_REQUEST       浏览器向服务器发送的完整HTTP请求行(例如,“GET /index.html HTTP / 1.1”)。这不包括浏览器发送的任何其他标头。与以下大多数其他变量不同,此值尚未转义(解码)。

     

REQUEST_URI       请求的URI的路径组件,例如“/index.html”。这显然排除了查询字符串,该字符串可用作名为QUERY_STRING的自己的变量。

     

REQUEST_FILENAME       与请求匹配的文件或脚本的完整本地文件系统路径(如果在引用REQUEST_FILENAME时服务器已确定)。否则,例如在虚拟主机上下文中使用时,其值与REQUEST_URI相同。根据AcceptPathInfo的值,服务器可能只使用REQUEST_URI的某些主要组件将请求映射到文件。