htaccess语法RewriteRule

时间:2018-08-07 08:25:25

标签: php .htaccess

我想尝试了解我的htaccess规则,但是我无法成功找到合适的文档。

RewriteRule ^([a-z]{1,2})?\/?style\/(.*).css$ site/scripts/concat-files.php?type=css&page=$2&lang=$1 [L,QSA]

问题1: 我猜这条规则是由这样的事情触发的。 <link rel="stylesheet" src =<?php echo URL ?>"/en/style/accueil.css"> 我对吗 ?

问题2:我知道QSA允许将请求参数从第一个URL保留到重写URL。但是L在做什么?

问题3:规则是由这类事情触发的吗?

$urlstyle = URL."en/style/accueil.css";
$style = file_get_contents($urlstyle);

谢谢。

编辑:然后考虑这个

$urlstyle = URL_SITE.'en/style/accueil.css';
$style = file_get_contents($urlstyle);
echo $style;

样式是书面的。

但是在我的concat-files.php中

我有这个

$pathfile= PATH . $file;
$sContenu = @file_get_contents( $pathfile);
if( $sContenu !== false) {
    echo $sContenu;
}

这意味着Accueil CSS将被写入两次否?

但是在我的代码中,我只有一次。

1 个答案:

答案 0 :(得分:0)

修改
正如@nick在评论中所说的
1-该规则由任何满足规则本身的http请求触发。或者更确切地说:

`1 or 2 alphabetic characters` / style / `any string`.css

2-{{​​1}}表示仅第一条规则适用,其他匹配的规则将被忽略。

3-是的,正如我所说的,该规则由任何满足规则本身的http请求触发

Edit2

不,看来您没有两次输出相同的内容。

[L]

您正在将{由某些PHP代码生成的)URL内容分配给$style = file_get_contents($urlstyle); 。 与$style函数的行为不同,在这种情况下,这两段代码将被执行和写入两次。
没关系,只有一次。