重写规则无法在 VPS 中编译正则表达式


RewriteRule cannot compile regular expression in VPS

我以前的服务器工作正常。今天我更换了新服务器,并且获得 RewriteRule 无法在我的 htaccess 上编译正则表达式。

如何修复此行

RewriteRule ^([a-zA-Z0-9_-'s'$':'!'?'[']'(')'''"]+)$ %{QUERY_STRING}?file=$1 [L]

这是将所有页面重写为索引.php文件的规则。我正在使用Apache 2.2.29。谢谢!

您的正则表达式确实看起来可疑,请尝试以下规则:

RewriteRule ^([]['w's$:!()'"-]+)/?$ ?file=$1 [L,QSA]
  • 连字符需要位于字符类中的第一个或最后一个位置,以避免转义。
  • 无需在字符类中执行所有这些转义。