究竟这个重写条件究竟是什么?

时间:2017-08-31 12:48:49

标签: apache mod-rewrite

我遇到了解这个mod_rewrite表达式的问题。我正在使用local xampp environment,其root目录中有一个名为htdocs的目录。当我像localhost/root这样输入地址栏时,会打开index.php页面。这是.htaccess文件的代码。

RewriteEngine on
RewriteBase /root/
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteRule ^.*$ index.php [NC,L]

我在line no 3遇到问题,我知道RewriteRule只有在条件成立时才会有效。但这种情况的目的是什么呢?它在这种情况下的作用。

1 个答案:

答案 0 :(得分:1)

此规则的目的是不匹配任何静态文件(定义为以.css,.js,.png,.jpg,.gif或robots.txt结尾,不区分大小写)。任何与规则匹配的请求(即不以任何指定字符串结尾)都将传递给index.php。

例如:如果请求是/images/logo.png,则以.png结束,这意味着它满足括号之间的条件,因此不满足整个表达式。因此,它不会传递给index.php。 但是,对/blog/hello-world/的请求不会以提到的字符串之一结束,因此它满足整个表达式。因此它将由index.php处理。

相关问题