奇怪的 RewriteRule 导致错误

Strange RewriteRule causes errors

我在 Litespeed 服务器上使用 PrestaShop,这里是管理面板的 .htaccess 的一部分:

    # Keep legacy entry points
    RewriteRule ^(ajax|ajax_products_list|ajax-tab|backup|cron_currency_rates)\.php - [P]
    RewriteRule ^(displayImage|drawer|footer\.inc|functions|get-file-admin)\.php - [P]
    RewriteRule ^(grider|header\.inc|init|login|password|pdf|searchcron)\.php - [P]

    # If the URL is a legacy on index.php?controller=..., do not rewrite (let the legacy take it)
    RewriteCond  %{QUERY_STRING} (^|&)controller=|(^|&)tab=
    RewriteRule .* - [P]

我看到很多关于这些的日志:

2021-10-30 16:01:17.163186  WARN    [225891] [T0] [REWRITE] Detects bad proxy action without updating target URL. Ignore. while parsing: RewriteRule ^(ajax|ajax_products_list|ajax-tab|backup|cron_currency_rates)\.php - [P]
2021-10-30 16:01:17.163218  WARN    [225891] [T0] [REWRITE] Detects bad proxy action without updating target URL. Ignore. while parsing: RewriteRule ^(displayImage|drawer|footer\.inc|functions|get-file-admin)\.php - [P]
2021-10-30 16:01:17.163228  WARN    [225891] [T0] [REWRITE] Detects bad proxy action without updating target URL. Ignore. while parsing: RewriteRule ^(grider|header\.inc|init|login|password|pdf|searchcron)\.php - [P]
2021-10-30 16:01:17.163243  WARN    [225891] [T0] [REWRITE] Detects bad proxy action without updating target URL. Ignore. while parsing: RewriteRule .* - [P]
2021-10-30 16:01:17.581695  WARN    [225890] [T0] [REWRITE] Detects bad proxy action without updating target URL. Ignore. while parsing: RewriteRule .* - [P]

任何人都可以描述那些 RewriteRules 是什么以及为什么我会收到这些错误吗?


谢谢!

P 标志的使用在这种情况下显然是一个错误。我会说这是一个错字,不是在每条规则上!他们可能打算使用 PT(直通),尽管 L(最后)(或 END)更可取。

这些指令的目的是防止进一步处理(即发生其他重写)这些特定的“遗留”URL。

将所有 4 条规则的 [P] 更改为 [L] 以解决此问题。

例如:

RewriteRule ^ - [L]

(同时把最后一条规则的.*改成^,因为不需要真的匹配所有,只要匹配成功即可。)