2010-10-12 25 views
-1

有人可以告诉我这是什么吗?这个Mod Rewrite做了什么?

RewriteRule .* .main.php [QSA,L] 

从我所了解的将重写任何东西改为main.php是否正确?但不太确定QSA,L做了什么。

这是整个.htaccess文件,当我点击主目录时,我得到一个400错误请求错误。 编辑:当我在浏览器中将结尾斜杠添加到此脚本的根目录时,错误的请求消失了。

RewriteEngine On 


# Transfering to the main tranfer file 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !\.css$ 
RewriteCond %{REQUEST_FILENAME} !\.js$ 

RewriteRule .* .main.php [QSA,L] 

# nobody is allowed to access the access the INI file 

<FilesMatch "\.inc.php$"> 
    Order allow,deny 
    Deny from all 
</FilesMatch> 

回答

0

QSA =查询字符串附加:现有的查询字符串附加到重新写入规则

L =最后一条规则:一组的最后一个规则,不处理任何后续RewriteRule

查看documentation获取更多信息。您是否有文件名为.main.php?点前缀令我担心。您的规则读取,除非请求是存在的,符号链接,或者它有一个CSS或JS扩展它去.main.php

+0

谢谢。是的....有一个名为.main.php的文件,实际上这个脚本中有很多文件在它们的名字前面有一个点,实际上很奇怪。虽然这些点让我感到困惑,但他们是不是指正则表达式中的“任何单个字符”? – Brett 2010-10-12 18:39:53

+0

FTR ..当我在浏览器中将结尾斜杠添加到此脚本的根目录时,错误的请求消失了。 – Brett 2010-10-12 18:44:55

+0

它应该使用或不使用斜线。评论与URL,这个子目录?你恰到好处地匹配任何角色。但是在这种情况下,点在右侧,这是一个文字字符串。该点可能作为附加安全措施的前缀。 – 2010-10-12 19:32:35