我正在使用一个脚本,每次在查询字符串中出现特殊关键字组合时都会调用该脚本 - 在我的服务器上的所有域上。我在每个具有以下行的域上使用 .htaccess 文件:
RewriteBase /
RewriteCond some_conditions_here
RewriteRule .* myspecialscript.php [L,QSA]
由于我有时会处理重写条件,因此我必须修改每个虚拟主机的所有 .htaccess。但是我正在运行一个服务器前端软件,该软件允许在每个虚拟主机配置文件中自动包含一个特殊部分 - 所以我想移植上面的重写规则以在虚拟主机配置中工作。但我所做的——我失败了。重写条件被正确识别 - 但重写本身失败。
我尝试过以下两种方法:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond some_conditions_here
RewriteRule ^/(.*) https://%{HTTP_HOST}/myspecialscript.php [L,QSA]
RewriteRule .* myspecialscript.php [L,QSA]
</IfModule>
第一个失败,显示“...重定向太多...”,第二个失败(当然是因为缺少重写基础),错误 400。
当然,我一次只添加了一项规则 - 但两者都失败并出现上述错误。问题是什么?
答案1
太傻了。我只是忘记了目标处的尾随 / ......