Mod rewrite 这个Mod重写是做什么的?

Mod rewrite 这个Mod重写是做什么的?,mod-rewrite,url-rewriting,Mod Rewrite,Url Rewriting,谁能告诉我这是干什么的 RewriteRule .* .main.php [QSA,L] 据我所知,它会将任何内容重写为main.php,对吗?但我不太确定QSA是干什么的 这是整个.htaccess文件,当我点击主目录时,我得到一个400错误的请求错误。编辑:当我在浏览器中将结束斜杠添加到此脚本的根目录时,错误的请求消失了 RewriteEngine On # Transfering to the main tranfer file RewriteCond %{REQUEST_FILE

谁能告诉我这是干什么的

RewriteRule .* .main.php [QSA,L]
据我所知,它会将任何内容重写为main.php,对吗?但我不太确定QSA是干什么的

这是整个.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>

QSA=查询字符串追加:将现有查询字符串追加到重新编写的规则中

L=最后一条规则:集合的最后一条规则,不处理任何以下规则

更多信息,请查看


您有一个名为.main.php的文件吗?点前缀让我担心。您的规则是,除非请求是一个存在的符号链接,或者它有CSS或JS扩展名,否则它将转到.main.php

谢谢。是 啊有一个名为.main.php的文件,实际上在这个脚本中有很多文件的名称前有一个点。。。其实很奇怪。虽然这些点也让我有点困惑,但它们不是指正则表达式形式中的任何单个字符吗。。当我在浏览器中将结束斜杠添加到此脚本的根目录时,错误的请求消失了。它应该可以使用斜杠或不使用斜杠。用URL注释,这是子目录吗?只要一个点与任何字符匹配,你都是对的。但是这个例子中的点在右边,它是一个文本字符串。点可能是作为附加安全措施的前缀。好的,谢谢。URL isL