.htaccess 将^(.*)$(everything)重写到特定目录无效

yquaqz18  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(133)

下面的重写规则由于一些奇怪的原因抛出错误500:

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /

    RewriteRule ^(.*)$ folder/$1 [L]

</IfModule>

如果我修改规则,只在^后面添加一个字符(如x),它就可以工作;每个以x开头的文件都会从所需的文件夹中读取:

RewriteRule ^x(.*)$ folder/x$1 [L]

这也不起作用:

RewriteRule ^((?!folder/).*)$ folder/$1 [L]

此外,第一个和最后一个示例在localhost上工作,但在远程服务器上不工作。
远程服务器使用LiteSpeed服务器(如果相关)。

p5fdfcr1

p5fdfcr11#

我在localhost上试了同样的方法,日志显示:

规则产生循环,我把[L]标志替换成[END],问题解决了

原因:

[L]标志仅停止当前迭代的进一步规则的处理,[END]完全终止整个过程,防止循环发生。

相关问题