下面的重写规则由于一些奇怪的原因抛出错误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服务器(如果相关)。
1条答案
按热度按时间p5fdfcr11#
我在localhost上试了同样的方法,日志显示:
规则产生循环,我把
[L]
标志替换成[END]
,问题解决了原因:
[L]
标志仅停止当前迭代的进一步规则的处理,[END]
完全终止整个过程,防止循环发生。